Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
e290cc9
Initial SvelteKit migration
Blipz Jul 15, 2024
8361ac1
Fix locale URL with build preview
Blipz Jul 15, 2024
66db459
Adapt for PWA support
Blipz Jul 16, 2024
e80de49
Integrate API into the new framework
Blipz Jul 17, 2024
ba51c7f
Sync more API features with UI
Blipz Jul 18, 2024
6e39d84
Experiment with convert-svg-to-png
Blipz Jul 25, 2024
3a436a0
Suppress a11y warnings for now
Blipz Jul 25, 2024
feefcb2
Fix path to background image
Blipz Jul 25, 2024
49a409f
Move API documentation to the wiki
Blipz Jul 25, 2024
e4a8cbf
Fix division in API renderer
Blipz Jul 25, 2024
d8c0d21
Configure prettier to be closer to current code
Blipz Jul 26, 2024
e0be222
Coding style
Blipz Aug 1, 2024
eb881f3
feat: refactor
Azgaar Aug 1, 2024
8004711
feat: adapter-vercel
Azgaar Aug 1, 2024
28e6853
chore: format
Azgaar Aug 1, 2024
5ce84aa
chore - adapter-vercel
Azgaar Aug 1, 2024
63b634e
fix: fetchCharge
Azgaar Aug 1, 2024
98974a7
fix: check if DEV
Azgaar Aug 1, 2024
330a256
refactor: update file path in fetchCharge function
Azgaar Aug 1, 2024
f03ba5c
feat: update fetchCharge function to use dynamic URL for fetching cha…
Azgaar Aug 1, 2024
11054c5
refactor: update fetchCharge function to use dynamic URL for fetching…
Azgaar Aug 1, 2024
6aea532
refactor: update fetchCharge function to use dynamic URL for fetching…
Azgaar Aug 1, 2024
be40a92
refactor: update fetchCharge function to use dynamic URL for fetching…
Azgaar Aug 1, 2024
4b644e2
refactor: update fetchCharge function to use dynamic URL for fetching…
Azgaar Aug 1, 2024
63c0d79
refactor: update fetchCharge function to use dynamic URL for fetching…
Azgaar Aug 1, 2024
a0e20c4
refactor: update fetchCharge function to use dynamic URL for fetching…
Azgaar Aug 1, 2024
7ea4448
refactor: Update fetchCharge function to use dynamic URL for fetching…
Azgaar Aug 1, 2024
6b5b71d
refactor: Update fetchCharge function to use dynamic URL for fetching…
Azgaar Aug 1, 2024
87c1f5f
refactor: mongo connection class
Azgaar Aug 1, 2024
0a61a20
feat: add puppeteer to devs
Azgaar Aug 1, 2024
66f8506
Update README
Blipz Aug 2, 2024
55215f0
chore: Add chrome-aws-lambda dependency for SVG conversion
Azgaar Aug 2, 2024
e4d7e76
Merge branch 'sveltekit' of https://github.com/Azgaar/Armoria into sv…
Azgaar Aug 2, 2024
7f180cf
chore: Update puppeteer dependency to puppeteer-core 10.1.0
Azgaar Aug 2, 2024
36879f5
feat: check chromium.executablePath
Azgaar Aug 3, 2024
2eab380
Upgrade puppeteer and convert-svg
Blipz Jul 7, 2025
7099c46
Fix SVG conversion on Vercel
Blipz Jul 8, 2025
6141088
Improve rasterization quality
Blipz Jul 8, 2025
0c405f8
Merge branch 'master' into sveltekit
Blipz Jul 9, 2025
36fd318
Fix some HTML formatting
Blipz Jul 10, 2025
dc59466
fix: missing import
Blipz Jul 10, 2025
ef05fbb
Upgrade dependencies
Blipz Jul 15, 2025
b70638b
Upgrade convert-svg dependency
Blipz Jul 15, 2025
b975441
fix: warnings about HTML formatting
Blipz Jul 15, 2025
a38f4f1
Adapt to Svelte 5
Blipz Jul 15, 2025
8227e1b
fix: API with inescutcheon charge
Blipz Jul 18, 2025
7226bed
Replace deprecated xlink:href attribute with href
Blipz Jul 18, 2025
5ce502a
Merge branch 'master' into sveltekit
Blipz Aug 21, 2025
9e96d0a
Revert to Svelte 4
Blipz Aug 27, 2025
e948ec5
Upgrade patch-package dependency
Blipz Oct 23, 2025
d23919a
Merge branch 'master' into sveltekit
Blipz Oct 23, 2025
514b19a
Merge branch 'master' into sveltekit
Blipz Oct 23, 2025
5d4ec20
Merge branch 'master' into sveltekit
Blipz Nov 10, 2025
1cb9196
fix: missing import
Blipz Dec 12, 2025
0c3a903
refactor: typos
Blipz Dec 12, 2025
6a84b11
Merge branch 'master' into sveltekit
Blipz Dec 12, 2025
0d97867
fix: use dashes for warning codes
Blipz Dec 12, 2025
4562247
Merge branch 'master' into sveltekit
Blipz Dec 24, 2025
0b8bef1
Change app URL
Blipz Dec 24, 2025
f209bef
Regenerate package-lock.json
Blipz Mar 3, 2026
be384d4
Regenerate package-lock.json
Blipz Mar 3, 2026
5fd5a50
Upgrade adapter-vercel to support Node 24
Blipz Mar 4, 2026
382007f
Workaround for build step
Blipz Mar 4, 2026
8fb4267
API fix
Blipz Mar 7, 2026
0b400b1
Try setting caching header
Blipz Mar 28, 2026
61d3a23
Fix API with inescutcheons
Blipz Apr 9, 2026
9c6dba8
API: improve debugging
Blipz Apr 10, 2026
e9b5ebb
Reclaim fixes
Blipz Apr 11, 2026
8d4da40
Make sure COA shield is defined
Blipz Apr 11, 2026
6eb985e
Reduce cache max age
Blipz Apr 11, 2026
80a6a10
Sync fonts with FMG
Blipz Apr 13, 2026
cf0bb07
Merge branch 'master' into sveltekit
Blipz Aug 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 5 additions & 5 deletions .github/workflows/update_locales_manifest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
branches:
- master
paths:
- "public/locales/*"
- "static/locales/*"
workflow_dispatch:
branches:
- master
Expand All @@ -21,21 +21,21 @@ jobs:
import os
import time
import json
languages = [i.name for i in os.scandir("public/locales") if i.is_dir()]
languages = [i.name for i in os.scandir("static/locales") if i.is_dir()]
languages.sort()
try:
with open("public/locales/manifest.json") as f:
with open("static/locales/manifest.json") as f:
manifest = json.load(f)
except OSError:
manifest = {"files": ["\/lang.json"], "languages": ["en"], "language_mapping": [], "custom_languages": []}
if languages != manifest['languages']:
manifest['languages'] = languages
manifest['timestamp'] = int(time.time())
with open("public/locales/manifest.json", 'w') as f:
with open("static/locales/manifest.json", 'w') as f:
json.dump(manifest, f)
shell: python

- uses: peter-evans/create-pull-request@v3
with:
commit-message: "Auto-update Crowdin manifest.json on changes to public/locales"
commit-message: "Auto-update Crowdin manifest.json on changes to static/locales"
title: "Update locales manifest"
22 changes: 20 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,21 @@
/node_modules/
/public/build/
node_modules

# Output
.output
.vercel
/.svelte-kit
/build

# OS
.DS_Store
Thumbs.db

# Env
.env
.env.*
!.env.example
!.env.test

# Vite
vite.config.js.timestamp-*
vite.config.ts.timestamp-*
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
engine-strict=true
4 changes: 4 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Package Managers
package-lock.json
pnpm-lock.yaml
yarn.lock
10 changes: 10 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"useTabs": false,
"singleQuote": false,
"trailingComma": "none",
"printWidth": 130,
"arrowParens": "avoid",
"bracketSpacing": false,
"plugins": ["prettier-plugin-svelte"],
"overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }]
}
18 changes: 10 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
# Armoria

Armoria is a procedural heraldry generator and editor by Azgaar. It's both a serverless GUI tool and server-side API. Almost the same code is also used as a part of the [Fantasy Map Generator](https://github.com/Azgaar/Fantasy-Map-Generator) project.
Armoria is a procedural heraldry generator and editor by Azgaar. It's both a serverless GUI tool and server-side API. It is also used as a part of the [Fantasy Map Generator](https://github.com/Azgaar/Fantasy-Map-Generator) project.

The GUI version is available on [Github Pages](https://azgaar.github.io/Armoria/). Join our [Reddit community](https://www.reddit.com/r/FantasyMapGenerator) and [Discord server](https://discordapp.com/invite/X7E84HU) to share your creations, discuss the tool, suggest ideas and get the most recent updates.
The GUI is available on [Vercel](https://armoria.vercel.app/). Join our [Reddit community](https://www.reddit.com/r/FantasyMapGenerator) and [Discord server](https://discordapp.com/invite/X7E84HU) to share your creations, discuss the tool, suggest ideas and get the most recent updates.

You can support the project on [Patreon](https://www.patreon.com/azgaar).

A tutorial is available [on Wiki](https://github.com/Azgaar/Armoria/wiki/Armoria-Tutorial). In case you want to help with translation, join the project on [Crowdin](https://crowdin.com/project/armoria).

![Gallery View](public/preview.png)
![Gallery View](static/preview.png)

![Editor View](public/preview2.png)
![Editor View](static/preview2.png)

## For Developers

The tool is almost zero-dependency vanilla JS with just [Svelte](https://github.com/sveltejs/svelte) used for GUI. Svelte is a bit specific framework that compiles components to vanilla JS.
The tool is almost zero-dependency vanilla JS based on [SvelteKit](https://github.com/sveltejs/kit). [Svelte](https://github.com/sveltejs/svelte) is a framework used for UI that compiles components to vanilla JS.

Pull requests are welcomed.

### Installation

Clone the repository and install the dependencies, then run `dev` to start Rollup and build in dev mode:
Clone the repository and install the dependencies, then run `dev` to build and start the application in dev mode:

```
git clone https://github.com/Azgaar/Armoria.git
Expand All @@ -29,13 +29,15 @@ npm install
npm run dev
```

Navigate to [localhost:5000](http://localhost:5000). You should see the app running. Edit a component file in `src`, save it, and reload the page to see your changes.
Navigate to [localhost:5173](http://localhost:5173). You should see the app running. Edit a component file in `src`, save it, and reload the page to see your changes.

To create an optimised version run `npm run build`.

## API

Armoria API is available as a separate project, see [the documentation](https://github.com/Azgaar/armoria-api#readme). The API allows to `GET` random or predefined vector and raster heraldic images of a given size.
The API allows to `GET` random or predefined vector and raster heraldic images of a given size.

For more details, see [the documentation](https://github.com/Azgaar/Armoria/wiki/Armoria-API).

## Alternatives

Expand Down
4 changes: 2 additions & 2 deletions crowdin.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
files:
- source: /public/locales/en/lang.json
translation: /public/locales/%two_letters_code%/%original_file_name%
- source: /static/locales/en/lang.json
translation: /static/locales/%two_letters_code%/%original_file_name%
33 changes: 33 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import js from '@eslint/js';
import ts from 'typescript-eslint';
import svelte from 'eslint-plugin-svelte';
import prettier from 'eslint-config-prettier';
import globals from 'globals';

/** @type {import('eslint').Linter.FlatConfig[]} */
export default [
js.configs.recommended,
...ts.configs.recommended,
...svelte.configs['flat/recommended'],
prettier,
...svelte.configs['flat/prettier'],
{
languageOptions: {
globals: {
...globals.browser,
...globals.node
}
}
},
{
files: ['**/*.svelte'],
languageOptions: {
parserOptions: {
parser: ts.parser
}
}
},
{
ignores: ['build/', '.svelte-kit/', 'dist/']
}
];
Loading