fontist 2.1.3 → 2.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/docs.yml +70 -0
  3. data/.github/workflows/links.yml +100 -0
  4. data/.gitignore +2 -1
  5. data/docs/.vitepress/config.ts +153 -32
  6. data/docs/.vitepress/data/cli-commands.json +461 -0
  7. data/docs/.vitepress/data/exit-codes.json +21 -0
  8. data/docs/.vitepress/data/features.json +44 -0
  9. data/docs/.vitepress/theme/components/HeroCodeBlock.vue +98 -0
  10. data/docs/.vitepress/theme/components/WithinHero.vue +30 -0
  11. data/docs/.vitepress/theme/index.ts +12 -0
  12. data/docs/.vitepress/theme/style.css +152 -0
  13. data/docs/api/errors.md +211 -0
  14. data/docs/api/font.md +101 -0
  15. data/docs/api/fontconfig.md +82 -0
  16. data/docs/api/formula.md +103 -0
  17. data/docs/api/index.md +49 -0
  18. data/docs/api/manifest.md +209 -0
  19. data/docs/cli/cache.md +100 -0
  20. data/docs/cli/config.md +123 -0
  21. data/docs/cli/create-formula.md +65 -0
  22. data/docs/cli/exit-codes.md +73 -0
  23. data/docs/cli/fontconfig.md +85 -0
  24. data/docs/cli/import.md +136 -0
  25. data/docs/cli/index-cmd.md +37 -0
  26. data/docs/cli/index.md +80 -0
  27. data/docs/cli/install.md +52 -0
  28. data/docs/cli/list.md +39 -0
  29. data/docs/cli/manifest.md +110 -0
  30. data/docs/cli/repo.md +142 -0
  31. data/docs/cli/status.md +39 -0
  32. data/docs/cli/uninstall.md +34 -0
  33. data/docs/cli/update.md +31 -0
  34. data/docs/cli/version.md +38 -0
  35. data/docs/components/CliCommand.vue +77 -0
  36. data/docs/components/CliExamples.vue +17 -0
  37. data/docs/components/CliOptions.vue +26 -0
  38. data/docs/components/ExitCodes.vue +18 -0
  39. data/docs/guide/ci.md +4 -0
  40. data/docs/guide/concepts/fonts.md +158 -0
  41. data/docs/guide/concepts/formats.md +234 -0
  42. data/docs/guide/concepts/index.md +109 -0
  43. data/docs/guide/concepts/licenses.md +236 -0
  44. data/docs/guide/concepts/requirements.md +388 -0
  45. data/docs/guide/concepts/variable-fonts.md +212 -0
  46. data/docs/guide/formulas.md +192 -0
  47. data/docs/guide/how-it-works.md +428 -0
  48. data/docs/guide/index.md +26 -47
  49. data/docs/guide/installation.md +105 -0
  50. data/docs/guide/manifests.md +132 -0
  51. data/docs/guide/quick-start.md +76 -0
  52. data/docs/guide/why.md +4 -0
  53. data/docs/index.md +55 -23
  54. data/docs/lychee.toml +33 -0
  55. data/docs/package-lock.json +9 -114
  56. data/docs/package.json +3 -5
  57. data/docs/public/apple-touch-icon.png +0 -0
  58. data/docs/public/favicon-96x96.png +0 -0
  59. data/docs/public/favicon.ico +0 -0
  60. data/docs/public/favicon.svg +1 -0
  61. data/docs/public/logo-full.svg +1 -0
  62. data/docs/public/logo.svg +1 -0
  63. data/docs/public/site.webmanifest +21 -0
  64. data/docs/public/web-app-manifest-192x192.png +0 -0
  65. data/docs/public/web-app-manifest-512x512.png +0 -0
  66. data/lib/fontist/cli.rb +0 -1
  67. data/lib/fontist/version.rb +1 -1
  68. metadata +58 -8
  69. data/.github/workflows/deploy-pages.yml +0 -54
  70. data/.github/workflows/release.yml.orig +0 -36
  71. data/docs/guide/api-ruby.md +0 -189
  72. data/docs/public/hero.png +0 -0
  73. data/docs/public/logo.png +0 -0
  74. data/docs/reference/index.md +0 -143
@@ -0,0 +1,132 @@
1
+ ---
2
+ title: Manifests
3
+ ---
4
+
5
+ # Manifests
6
+
7
+ Manifests are YAML files that define the fonts your project requires. They enable reproducible font installations across teams, machines, and CI/CD pipelines.
8
+
9
+ ## Basic Format
10
+
11
+ A manifest is a simple YAML file listing font names:
12
+
13
+ ```yaml
14
+ Fira Code:
15
+ Open Sans:
16
+ Roboto:
17
+ ```
18
+
19
+ Save this as `fonts.yml` and install all fonts with:
20
+
21
+ ```sh
22
+ fontist manifest install fonts.yml
23
+ ```
24
+
25
+ ## Specifying Styles
26
+
27
+ You can request specific font styles:
28
+
29
+ ```yaml
30
+ Roboto:
31
+ - Regular
32
+ - Bold
33
+ - Italic
34
+
35
+ Open Sans:
36
+ - Regular
37
+ - Bold
38
+ ```
39
+
40
+ If no styles are specified, Fontist installs all available styles for each font.
41
+
42
+ ## Finding Font Names
43
+
44
+ To see available fonts and their exact names:
45
+
46
+ ```sh
47
+ fontist list
48
+ ```
49
+
50
+ Search for a specific font:
51
+
52
+ ```sh
53
+ fontist list "Roboto"
54
+ ```
55
+
56
+ ## Getting Font Locations
57
+
58
+ After installing fonts from a manifest, you can get their file paths:
59
+
60
+ ```sh
61
+ fontist manifest locations fonts.yml
62
+ ```
63
+
64
+ Output is a YAML structure with paths:
65
+
66
+ ```yaml
67
+ ---
68
+ Roboto:
69
+ Regular:
70
+ full_name: Roboto
71
+ paths:
72
+ - "/home/user/.fontist/fonts/Roboto-Regular.ttf"
73
+ Bold:
74
+ full_name: Roboto Bold
75
+ paths:
76
+ - "/home/user/.fontist/fonts/Roboto-Bold.ttf"
77
+ ```
78
+
79
+ This output can be parsed by scripts or used directly in applications.
80
+
81
+ ## Use Cases
82
+
83
+ ### CI/CD Pipelines
84
+
85
+ Define project fonts in a manifest for reproducible builds:
86
+
87
+ ```yaml
88
+ # fonts.yml
89
+ Fira Code:
90
+ Source Sans Pro:
91
+ ```
92
+
93
+ ```yaml
94
+ # .github/workflows/build.yml
95
+ steps:
96
+ - uses: actions/checkout@v4
97
+ - uses: fontist/setup@v1
98
+ - run: fontist manifest install fonts.yml --accept-all-licenses --hide-licenses
99
+ ```
100
+
101
+ ### Team Projects
102
+
103
+ Commit `fonts.yml` to your repository so all team members use the same fonts:
104
+
105
+ ```yaml
106
+ # Project fonts - install with: fontist manifest install fonts.yml
107
+ Merriweather:
108
+ - Regular
109
+ - Bold
110
+ Inter:
111
+ - Regular
112
+ ```
113
+
114
+ ### Documentation
115
+
116
+ Manifests serve as self-documenting font requirements. Anyone joining the project can see exactly which fonts are needed.
117
+
118
+ ## CI Options
119
+
120
+ For automated environments, use these flags:
121
+
122
+ ```sh
123
+ fontist manifest install fonts.yml --accept-all-licenses --hide-licenses
124
+ ```
125
+
126
+ - `--accept-all-licenses` - Skip license prompts
127
+ - `--hide-licenses` - Don't display license text
128
+
129
+ ## Related
130
+
131
+ - [fontist manifest CLI reference](/cli/manifest) - Complete command documentation
132
+ - [CI/CD Integration guide](/guide/ci) - Setting up Fontist in CI
@@ -0,0 +1,76 @@
1
+ ---
2
+ title: Quick Start
3
+ ---
4
+
5
+ # Quick Start
6
+
7
+ Get up and running with Fontist in 5 minutes. This guide walks through installing a font, checking its status, and using it in a manifest.
8
+
9
+ ## Step 1: Install a Font
10
+
11
+ Install your first font using the `install` command:
12
+
13
+ ```sh
14
+ fontist install "Fira Code"
15
+ ```
16
+
17
+ Some fonts may require you to accept license terms. Use the `--accept-all-licenses` flag to skip prompts (useful for CI):
18
+
19
+ ```sh
20
+ fontist install "Fira Code" --accept-all-licenses
21
+ ```
22
+
23
+ ## Step 2: Check Installation Status
24
+
25
+ Verify the font was installed correctly:
26
+
27
+ ```sh
28
+ fontist status
29
+ ```
30
+
31
+ This shows all installed fonts and their paths:
32
+
33
+ ```
34
+ Fira Code
35
+ Regular: ~/.fontist/fonts/FiraCode-Regular.ttf
36
+ Bold: ~/.fontist/fonts/FiraCode-Bold.ttf
37
+ ```
38
+
39
+ To see all available fonts (installed and installable):
40
+
41
+ ```sh
42
+ fontist list
43
+ ```
44
+
45
+ ## Step 3: Use a Manifest
46
+
47
+ Manifests let you define project fonts in a YAML file for reproducible installations.
48
+
49
+ Create a `fonts.yml` file:
50
+
51
+ ```yaml
52
+ Fira Code:
53
+ Open Sans:
54
+ Roboto:
55
+ ```
56
+
57
+ Install all fonts from the manifest:
58
+
59
+ ```sh
60
+ fontist manifest install fonts.yml
61
+ ```
62
+
63
+ Get the installation paths for manifest fonts:
64
+
65
+ ```sh
66
+ fontist manifest locations fonts.yml
67
+ ```
68
+
69
+ This outputs a YAML structure with font paths, which can be used in your build scripts or applications.
70
+
71
+ ## What's Next?
72
+
73
+ - [Manifests Guide](/guide/manifests) - Deep dive into manifest format and use cases
74
+ - [Formulas Guide](/guide/formulas) - Learn how Fontist finds and downloads fonts
75
+ - [CLI Reference](/cli/) - Explore all available commands
76
+ - [Ruby API](/api/) - Use Fontist programmatically from Ruby
data/docs/guide/why.md CHANGED
@@ -1,3 +1,7 @@
1
+ ---
2
+ title: Why Fontist?
3
+ ---
4
+
1
5
  # Why Fontist?
2
6
 
3
7
  In general, fonts can be downloaded manually and placed in a system folder. Some fonts are even pre-installed with an OS. **This is inconsistent across Windows, macOS, and Linux.**
data/docs/index.md CHANGED
@@ -1,40 +1,72 @@
1
1
  ---
2
- # https://vitepress.dev/reference/default-theme-home-page
3
2
  layout: home
3
+ pageClass: my-index-page
4
4
 
5
5
  hero:
6
- # name: "Fontist"
7
- text: "Manage your fonts effortlessly"
8
- tagline: Fontist brings cross-platform font management to the command line for Windows, Linux, and macOS. Free and open source.
9
- image:
10
- src: /hero.png
6
+ name: "Fontist"
7
+ text: "Cross-platform font management"
8
+ tagline: Install, manage, and build fonts programmatically. Works identically on Windows, macOS, and Linux.
11
9
  actions:
12
10
  - theme: brand
13
- text: 🚀 Get started
11
+ text: Get Started
14
12
  link: /guide/
15
13
  - theme: alt
16
- text: 💎 Ruby API
17
- link: /guide/api-ruby
14
+ text: CLI Reference
15
+ link: /cli/
18
16
  - theme: alt
19
- text: 🍰 Formulas
20
- link: https://fontist.org/formulas/
21
- target: _self
17
+ text: Ruby API
18
+ link: /api/
19
+
20
+ features:
21
+ - title: "🌐 Cross-Platform"
22
+ details: Same commands work identically on Windows, macOS, and Linux. No platform-specific paths to remember.
23
+ - title: "📦 Formula-Based"
24
+ details: 3000+ fonts available through community-maintained formulas with automatic download and license handling.
25
+ - title: "📋 Manifest Support"
26
+ details: Define font requirements in YAML for reproducible installations across environments and CI/CD pipelines.
27
+ - title: "🔄 CI/CD Ready"
28
+ details: Perfect for automated environments with non-interactive installation. GitHub Action available.
29
+ - title: "🔍 System Detection"
30
+ details: Detects and indexes fonts already installed on your system. No redundant downloads.
31
+ - title: "⚡ Fontconfig Integration"
32
+ details: Optional fontconfig integration for seamless font discovery in Linux environments.
22
33
  ---
23
34
 
24
- <!-- Excerpt from the Getting Started guide page. Try to keep it in sync! -->
35
+ <WithinHero>
36
+ <HeroCodeBlock title="fontist"><div class="line"><span class="comment"># 🚀 Install a font by name</span></div><div class="line"><span class="prompt">$</span> <span class="cmd">fontist</span> install "Open Sans"</div><div class="line"><span class="success">✓</span> Open Sans installed to ~/.fontist/fonts</div><div class="line">&nbsp;</div><div class="line"><span class="comment"># 📜 Install from manifest</span></div><div class="line"><span class="prompt">$</span> <span class="cmd">fontist</span> manifest-install manifest.yml</div><div class="line"><span class="success">✓</span> All fonts from manifest installed</div><div class="line">&nbsp;</div><div class="line"><span class="comment"># 🔍 Check font status</span></div><div class="line"><span class="prompt">$</span> <span class="cmd">fontist</span> status "Fira Code"</div><div class="line"><span class="success">✓</span> Fira Code Regular, Bold installed</div></HeroCodeBlock>
37
+ </WithinHero>
25
38
 
26
- ```sh
27
- gem install fontist
28
- ```
39
+ ## Quick Start
29
40
 
30
- 💎 Don't have Ruby installed? You can [download Ruby from the official Ruby website](https://www.ruby-lang.org/en/downloads/).
41
+ ```bash
42
+ # Install a font by name
43
+ fontist install "Open Sans"
31
44
 
32
- Now you're ready to start using Fontist to install fonts on your machine! 🤩
45
+ # Install from a manifest file
46
+ fontist manifest-install manifest.yml
33
47
 
34
- ```sh
35
- fontist install "Fira Code"
36
- fontist install "Open Sans"
37
- fontist install "Consolas"
48
+ # Check font status
49
+ fontist status "Fira Code"
38
50
  ```
39
51
 
40
- [📚 Read more in the Getting Started guide](/guide/)
52
+ ## Use Cases
53
+
54
+ **CI/CD Pipelines** — Automatically install fonts in GitHub Actions, GitLab CI, or any automation system. Non-interactive mode ensures reliable, reproducible builds.
55
+
56
+ **Document Publishing** — Essential for Metanorma, Asciidoctor, and other document generation tools that require specific fonts for PDF rendering.
57
+
58
+ **Development Environments** — Ensure consistent fonts across team machines without manual installation. One command sets up everything.
59
+
60
+ ## Why Fontist?
61
+
62
+ Most font management approaches are either manual (download, unzip, install) or platform-specific (apt-get, brew). Fontist provides a unified, scriptable interface that works the same everywhere.
63
+
64
+ | Feature | Fontist | Manual Install | apt-get/brew |
65
+ |--------|---------|----------------|--------------|
66
+ | Cross-platform | Same commands | Platform-specific | No |
67
+ | Formula-based | 3000+ fonts | Manual download | Limited selection |
68
+ | Manifest support | YAML-based | Not available | Not available |
69
+ | CI/CD Ready | Non-interactive | Complex setup | Complex setup |
70
+ | System Detection | Detects existing fonts | May miss fonts | May miss fonts |
71
+
72
+ [Learn more about why Fontist might be right for your project →](/guide/why)
data/docs/lychee.toml ADDED
@@ -0,0 +1,33 @@
1
+ # Lychee Link Checker Configuration
2
+ # https://github.com/lycheeverse/lychee
3
+
4
+ # Cache results to avoid re-checking same URLs
5
+ cache = true
6
+ max_cache_age = "1d"
7
+
8
+ # Check verbatim URLs in code blocks
9
+ include_verbatim = false
10
+
11
+ # Exclude patterns for URLs (regex)
12
+ exclude = [
13
+ ".git",
14
+ ".github",
15
+ "node_modules",
16
+ # Exclude GitHub issues (may require authentication)
17
+ 'github\.com/fontist/fontist/issues',
18
+ # Exclude internal /fontist/ links - these are deployment base paths
19
+ # that work correctly when deployed but fail in local file:// checking
20
+ '^file://.*/fontist/',
21
+ # Exclude malformed escaped URLs (VitePress footer issue)
22
+ '%22https://',
23
+ # Exclude proxy placeholder examples
24
+ 'proxyhost:port',
25
+ '\*\*\*proxy',
26
+ # Exclude trailing slash version of formulas guide (VitePress clean URL issue)
27
+ 'fontist\.org/formulas/guide/create-formula/$',
28
+ ]
29
+
30
+ # Exclude paths from checking
31
+ exclude_path = [
32
+ "node_modules",
33
+ ]
@@ -5,12 +5,10 @@
5
5
  "packages": {
6
6
  "": {
7
7
  "devDependencies": {
8
- "@types/node": "^25.0.0",
8
+ "@types/node": "^22.15.0",
9
9
  "prettier": "^3.8.1",
10
10
  "typescript": "^5.9.3",
11
- "vitepress": "^1.6.4",
12
- "vue": "^3.5.29",
13
- "vue-tsc": "^3.2.5"
11
+ "vitepress": "^1.6.4"
14
12
  }
15
13
  },
16
14
  "node_modules/@algolia/abtesting": {
@@ -1277,13 +1275,13 @@
1277
1275
  "license": "MIT"
1278
1276
  },
1279
1277
  "node_modules/@types/node": {
1280
- "version": "25.3.3",
1281
- "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.3.tgz",
1282
- "integrity": "sha512-DpzbrH7wIcBaJibpKo9nnSQL0MTRdnWttGyE5haGwK86xgMOkFLp7vEyfQPGLOJh5wNYiJ3V9PmUMDhV9u8kkQ==",
1278
+ "version": "22.19.15",
1279
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.15.tgz",
1280
+ "integrity": "sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==",
1283
1281
  "dev": true,
1284
1282
  "license": "MIT",
1285
1283
  "dependencies": {
1286
- "undici-types": "~7.18.0"
1284
+ "undici-types": "~6.21.0"
1287
1285
  }
1288
1286
  },
1289
1287
  "node_modules/@types/unist": {
@@ -1321,35 +1319,6 @@
1321
1319
  "vue": "^3.2.25"
1322
1320
  }
1323
1321
  },
1324
- "node_modules/@volar/language-core": {
1325
- "version": "2.4.28",
1326
- "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.28.tgz",
1327
- "integrity": "sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==",
1328
- "dev": true,
1329
- "license": "MIT",
1330
- "dependencies": {
1331
- "@volar/source-map": "2.4.28"
1332
- }
1333
- },
1334
- "node_modules/@volar/source-map": {
1335
- "version": "2.4.28",
1336
- "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.28.tgz",
1337
- "integrity": "sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==",
1338
- "dev": true,
1339
- "license": "MIT"
1340
- },
1341
- "node_modules/@volar/typescript": {
1342
- "version": "2.4.28",
1343
- "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.28.tgz",
1344
- "integrity": "sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==",
1345
- "dev": true,
1346
- "license": "MIT",
1347
- "dependencies": {
1348
- "@volar/language-core": "2.4.28",
1349
- "path-browserify": "^1.0.1",
1350
- "vscode-uri": "^3.0.8"
1351
- }
1352
- },
1353
1322
  "node_modules/@vue/compiler-core": {
1354
1323
  "version": "3.5.29",
1355
1324
  "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.29.tgz",
@@ -1440,22 +1409,6 @@
1440
1409
  "rfdc": "^1.4.1"
1441
1410
  }
1442
1411
  },
1443
- "node_modules/@vue/language-core": {
1444
- "version": "3.2.5",
1445
- "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.2.5.tgz",
1446
- "integrity": "sha512-d3OIxN/+KRedeM5wQ6H6NIpwS3P5gC9nmyaHgBk+rO6dIsjY+tOh4UlPpiZbAh3YtLdCGEX4M16RmsBqPmJV+g==",
1447
- "dev": true,
1448
- "license": "MIT",
1449
- "dependencies": {
1450
- "@volar/language-core": "2.4.28",
1451
- "@vue/compiler-dom": "^3.5.0",
1452
- "@vue/shared": "^3.5.0",
1453
- "alien-signals": "^3.0.0",
1454
- "muggle-string": "^0.4.1",
1455
- "path-browserify": "^1.0.1",
1456
- "picomatch": "^4.0.2"
1457
- }
1458
- },
1459
1412
  "node_modules/@vue/reactivity": {
1460
1413
  "version": "3.5.29",
1461
1414
  "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.29.tgz",
@@ -1643,13 +1596,6 @@
1643
1596
  "node": ">= 14.0.0"
1644
1597
  }
1645
1598
  },
1646
- "node_modules/alien-signals": {
1647
- "version": "3.1.2",
1648
- "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-3.1.2.tgz",
1649
- "integrity": "sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw==",
1650
- "dev": true,
1651
- "license": "MIT"
1652
- },
1653
1599
  "node_modules/birpc": {
1654
1600
  "version": "2.9.0",
1655
1601
  "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz",
@@ -2058,13 +2004,6 @@
2058
2004
  "dev": true,
2059
2005
  "license": "MIT"
2060
2006
  },
2061
- "node_modules/muggle-string": {
2062
- "version": "0.4.1",
2063
- "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz",
2064
- "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==",
2065
- "dev": true,
2066
- "license": "MIT"
2067
- },
2068
2007
  "node_modules/nanoid": {
2069
2008
  "version": "3.3.11",
2070
2009
  "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
@@ -2096,13 +2035,6 @@
2096
2035
  "regex-recursion": "^6.0.2"
2097
2036
  }
2098
2037
  },
2099
- "node_modules/path-browserify": {
2100
- "version": "1.0.1",
2101
- "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
2102
- "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
2103
- "dev": true,
2104
- "license": "MIT"
2105
- },
2106
2038
  "node_modules/perfect-debounce": {
2107
2039
  "version": "1.0.0",
2108
2040
  "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz",
@@ -2117,19 +2049,6 @@
2117
2049
  "dev": true,
2118
2050
  "license": "ISC"
2119
2051
  },
2120
- "node_modules/picomatch": {
2121
- "version": "4.0.3",
2122
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
2123
- "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
2124
- "dev": true,
2125
- "license": "MIT",
2126
- "engines": {
2127
- "node": ">=12"
2128
- },
2129
- "funding": {
2130
- "url": "https://github.com/sponsors/jonschlinkert"
2131
- }
2132
- },
2133
2052
  "node_modules/postcss": {
2134
2053
  "version": "8.5.8",
2135
2054
  "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz",
@@ -2393,9 +2312,9 @@
2393
2312
  }
2394
2313
  },
2395
2314
  "node_modules/undici-types": {
2396
- "version": "7.18.2",
2397
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
2398
- "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
2315
+ "version": "6.21.0",
2316
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
2317
+ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
2399
2318
  "dev": true,
2400
2319
  "license": "MIT"
2401
2320
  },
@@ -2604,13 +2523,6 @@
2604
2523
  }
2605
2524
  }
2606
2525
  },
2607
- "node_modules/vscode-uri": {
2608
- "version": "3.1.0",
2609
- "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz",
2610
- "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==",
2611
- "dev": true,
2612
- "license": "MIT"
2613
- },
2614
2526
  "node_modules/vue": {
2615
2527
  "version": "3.5.29",
2616
2528
  "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.29.tgz",
@@ -2633,23 +2545,6 @@
2633
2545
  }
2634
2546
  }
2635
2547
  },
2636
- "node_modules/vue-tsc": {
2637
- "version": "3.2.5",
2638
- "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.2.5.tgz",
2639
- "integrity": "sha512-/htfTCMluQ+P2FISGAooul8kO4JMheOTCbCy4M6dYnYYjqLe3BExZudAua6MSIKSFYQtFOYAll7XobYwcpokGA==",
2640
- "dev": true,
2641
- "license": "MIT",
2642
- "dependencies": {
2643
- "@volar/typescript": "2.4.28",
2644
- "@vue/language-core": "3.2.5"
2645
- },
2646
- "bin": {
2647
- "vue-tsc": "bin/vue-tsc.js"
2648
- },
2649
- "peerDependencies": {
2650
- "typescript": ">=5.0.0"
2651
- }
2652
- },
2653
2548
  "node_modules/zwitch": {
2654
2549
  "version": "2.0.4",
2655
2550
  "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
data/docs/package.json CHANGED
@@ -7,11 +7,9 @@
7
7
  },
8
8
  "type": "module",
9
9
  "devDependencies": {
10
- "@types/node": "^25.0.0",
10
+ "@types/node": "^22.15.0",
11
11
  "prettier": "^3.8.1",
12
- "typescript": "^5.9.3",
13
- "vitepress": "^1.6.4",
14
- "vue": "^3.5.29",
15
- "vue-tsc": "^3.2.5"
12
+ "typescript": "^5.9.0",
13
+ "vitepress": "^1.6.4"
16
14
  }
17
15
  }
Binary file
Binary file
Binary file
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" id="uuid-c6d7bb0b-ce20-4c4f-b0df-e25e79a561a7" viewBox="0 0 500 500" width="500" height="500"><path d="M64.43,140.29h67.44v13.2h-48.96v180h48.96v13.2h-67.44v-206.4Z" style="fill:#4d4b54;"></path><path d="M352.67,333.5h48.96v-180h-48.96v-13.2h67.44v206.4h-67.44v-13.2Z" style="fill:#4d4b54;"></path><path d="M237.77,169.8c4.32-20.16,8.64-39.6,16.92-54.36,9.36-16.92,24.12-33.48,55.08-33.48,21.96,0,34.2,10.8,34.2,26.28,0,10.44-6.84,15.84-14.4,15.84-9.72,0-13.32-6.48-14.4-14.04-1.44-9-2.16-17.64-10.8-17.64-18.36,0-27.36,21.24-32.76,51.84l-4.32,25.56h34.2l-2.16,14.76h-33.84l-20.52,122.76c-5.04,30.96-21.6,111.6-70.92,111.6-23.04,0-32.04-13.32-32.04-25.92,0-10.08,5.04-17.64,14.4-17.64,21.6,0,9.72,32.04,23.4,32.04,19.08,0,28.44-59.04,32.4-82.8l23.4-140.04h-30.24l1.44-14.76h30.96Z" style="fill:#bf4e6a;"></path></svg>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><svg id="uuid-a0e7239a-a159-4ac7-ad72-8a6345d73e7f" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1800 500"><path d="M257.61,451.33c-14.44,6.96-31.78,5.55-41.96-7.84L67.48,248.75c-5.62-7.38-6.35-18.76-.56-25.73l75.41-90.8c3.17-3.82,7.58-5.34,12.06-7.47l160.97-76.62c14.33-6.82,30.68-3.53,42.04,7.07l105.12,142.11c2.69,5.58,5.13,10.27,8.53,15.28l55.82,82.24c5.37,7.91,6.05,23.69-4.06,28.56l-265.21,127.93ZM287.03,310.96l161.6-76.96c11.16-5.32,21.54-22.67,13.21-34.01l-105.49-143.66c-11.5-10.31-27.05-13.14-41.14-6.4l-166.89,79.87c-13.23,6.33-14.59,25.94-6.48,36.81l97.77,131.09c11.25,15.09,29.74,21.66,47.42,13.24ZM232.38,452.15c6.57,2.92,14.18,2.5,21.22-.89l267.88-128.95c8.75-4.21,9.43-18.42,4.56-25.6l-59.66-88.07c-1.3,13.05-7.4,22.31-18.52,27.6l-157.65,75.1c-9.63,4.59-18.53,5.83-29.47,4.16-6.26-3.25-13.52-5.43-18.2-11.67l-100.41-133.93c-6.12-8.16-7.99-15.97-6.35-27.06l-67.77,81.52c-5.01,6.03-4.38,16.57.54,23.04l148.59,195.3c3.88,5.09,9.36,7.96,15.25,9.45Z" style="fill:#676565;"/><path d="M287.03,310.96c-17.68,8.42-36.17,1.85-47.42-13.24l-97.77-131.09c-8.11-10.88-6.75-30.48,6.48-36.81l166.89-79.87c14.09-6.74,29.64-3.91,41.14,6.4l105.49,143.66c8.33,11.34-2.05,28.69-13.21,34.01l-161.6,76.96Z" style="fill:#e1dfd2;"/><path d="M232.38,452.15c1.96-4.82,3.23-9.57,4.66-15.14l27.96-108.44c1.32-5.12-3.24-8.92-4.26-13.08,10.94,1.67,19.84.42,29.47-4.16l157.65-75.1c11.12-5.3,17.22-14.55,18.52-27.6l59.66,88.07c4.87,7.19,4.2,21.39-4.56,25.6l-267.88,128.95c-7.05,3.39-14.65,3.81-21.22.89Z" style="fill:#bebbac;"/><path d="M260.74,315.5c1.02,4.16,5.58,7.95,4.26,13.08l-27.96,108.44c-1.44,5.57-2.71,10.31-4.66,15.14-5.89-1.49-11.37-4.36-15.25-9.45L68.54,247.4c-4.92-6.47-5.55-17.01-.54-23.04l67.77-81.52c-1.64,11.09.23,18.9,6.35,27.06l100.41,133.93c4.68,6.24,11.94,8.42,18.2,11.67Z" style="fill:#dddac8;"/><polygon points="282.54 238.11 289.49 249.09 263.7 260.65 194.99 159.94 222.35 148.43 228.68 158.31 214.22 164.38 269.97 243.75 282.54 238.11" style="fill:#4d4b54;"/><polygon points="369.09 198.8 383.44 192.08 329.33 114.13 315.75 120.26 309.88 111.47 336 98.94 403.17 194.97 375.96 207.94 369.09 198.8" style="fill:#4d4b54;"/><path d="M292.11,160.41c9.03,15.98,17.59,31.55,25.28,48.2,7.43,16.09,16.44,39,4.36,54.53-5.6,7.2-13.93,10.74-22.32,9.15-3.42-.65-5.8-2.78-5.93-5.92-.12-2.78,1.59-5.75,4.93-6.61,2.7-.69,6.2-.29,8.92.64,5.17,1.76,9.75-.71,11.18-6.18,1.14-4.4.26-9.46-1.57-13.97-4.76-11.73-10.73-22.33-17-33.4l-21.8-38.5c-.25-.44-6.36-11.42-6.36-11.42-2.87-6.21-16.16-25.52-5.57-44.8,5.23-9.53,15.89-15.13,26.35-12.59,3.15.76,5.82,3.09,6.27,5.63.57,3.22-1.12,6.43-4.3,7.81-8,3.48-12.19-4.65-17.66-2.08-7.12,3.35-3.91,13.49-1.03,19.02l10.48,20.15c2.29,4.41,1.97,3.58,5.79,10.33Z" style="fill:#bf4e6a;"/><polygon points="266.05 179.81 260.64 171.75 310.91 148.47 315.92 155.96 266.05 179.81" style="fill:#bf4e6a;"/><path d="M703.28,220.77v144.67h-27.95v-144.67h-31.82v-24.08h31.99v-20.92c0-38.32,24.43-61.35,63.11-61.35,15.12,0,24.79,4.22,27.77,5.45l-3.34,22.68c-4.75-2.11-13.54-4.22-23.2-4.22-21.45,0-36.91,10.55-36.91,39.38v18.98h52.38v24.08h-52.03Z" style="fill:#bf4e6a;"/><path d="M863.6,193.17c51.33,0,89.65,38.5,89.65,87.89s-38.32,87.89-89.65,87.89-89.65-38.5-89.65-87.89,38.32-87.89,89.65-87.89ZM863.6,342.94c35.51,0,61.7-27.07,61.7-61.88s-26.19-61.88-61.7-61.88-61.7,27.07-61.7,61.88,26.19,61.88,61.7,61.88Z" style="fill:#bf4e6a;"/><path d="M1154.16,262.78v102.66h-27.77v-95.8c0-32.87-17.23-50.1-47.81-50.1-28.83,0-52.21,19.86-52.21,50.62v95.27h-27.95v-168.75h28.12v25.31c9.49-15.64,29.53-28.83,56.43-28.83,44.47,0,71.19,26.19,71.19,69.61Z" style="fill:#bf4e6a;"/><path d="M1246.27,220.77v91.23c0,22.15,11.95,31.82,29.18,31.82,9.14,0,20.74-1.76,28.83-4.75l3.69,24.08c-7.21,3.16-21.8,5.8-35.51,5.8-32.52,0-54.14-17.93-54.14-52.38v-95.8h-31.11v-24.08h31.29v-54.14h27.6v54.14h53.96v24.08h-53.79Z" style="fill:#bf4e6a;"/><path d="M1339.26,140.09c0-10.2,7.03-17.23,17.23-17.23s17.58,7.03,17.58,17.23-7.38,17.4-17.58,17.4-17.23-7.21-17.23-17.4ZM1342.6,196.69h27.95v168.75h-27.95v-168.75Z" style="fill:#4d4b54;"/><path d="M1496.76,270.34c33.57,6.68,51.33,21.8,51.33,48.16,0,32.87-26.19,50.45-67.15,50.45-23.91,0-47.46-4.75-63.28-12.66l3.87-24.96c15.47,7.91,37.09,12.66,57.48,12.66,27.07,0,41.66-8.44,41.66-24.08s-13.01-21.45-36.74-26.02l-21.97-4.39c-27.95-5.45-45.88-20.21-45.88-46.23,0-30.06,26.54-50.1,68.55-50.1,20.39,0,40.96,3.87,54.14,9.32l-3.52,24.43c-13.71-5.45-32.34-8.96-48.87-8.96-27.42,0-42.54,9.14-42.54,24.61,0,14.59,11.6,19.69,35.33,24.26l17.58,3.52Z" style="fill:#4d4b54;"/><path d="M1629.65,220.77v91.23c0,22.15,11.95,31.82,29.18,31.82,9.14,0,20.74-1.76,28.83-4.75l3.69,24.08c-7.21,3.16-21.8,5.8-35.51,5.8-32.52,0-54.14-17.93-54.14-52.38v-95.8h-31.11v-24.08h31.29v-54.14h27.6v54.14h53.96v24.08h-53.79Z" style="fill:#4d4b54;"/></svg>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><svg id="uuid-bbbd5b2f-b286-4c12-becd-414fca1ebde9" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 500"><path d="M210.8,451.33c-14.44,6.96-31.78,5.55-41.96-7.84L20.67,248.75c-5.62-7.38-6.35-18.76-.56-25.73l75.41-90.8c3.17-3.82,7.58-5.34,12.06-7.47l160.97-76.62c14.33-6.82,30.68-3.53,42.04,7.07l105.12,142.11c2.69,5.58,5.13,10.27,8.53,15.28l55.82,82.24c5.37,7.91,6.05,23.69-4.06,28.56l-265.21,127.93ZM240.21,310.96l161.6-76.96c11.16-5.32,21.54-22.67,13.21-34.01l-105.49-143.66c-11.5-10.31-27.05-13.14-41.14-6.4l-166.89,79.87c-13.23,6.33-14.59,25.94-6.48,36.81l97.77,131.09c11.25,15.09,29.74,21.66,47.42,13.24ZM185.57,452.15c6.57,2.92,14.18,2.5,21.22-.89l267.88-128.95c8.75-4.21,9.43-18.42,4.56-25.6l-59.66-88.07c-1.3,13.05-7.4,22.31-18.52,27.6l-157.65,75.1c-9.63,4.59-18.53,5.83-29.47,4.16-6.26-3.25-13.52-5.43-18.2-11.67l-100.41-133.93c-6.12-8.16-7.99-15.97-6.35-27.06L21.19,224.36c-5.01,6.03-4.38,16.57.54,23.04l148.59,195.3c3.88,5.09,9.36,7.96,15.25,9.45Z" style="fill:#676565;"/><path d="M240.21,310.96c-17.68,8.42-36.17,1.85-47.42-13.24l-97.77-131.09c-8.11-10.88-6.75-30.48,6.48-36.81l166.89-79.87c14.09-6.74,29.64-3.91,41.14,6.4l105.49,143.66c8.33,11.34-2.05,28.69-13.21,34.01l-161.6,76.96Z" style="fill:#e1dfd2;"/><path d="M185.57,452.15c1.96-4.82,3.23-9.57,4.66-15.14l27.96-108.44c1.32-5.12-3.24-8.92-4.26-13.08,10.94,1.67,19.84.42,29.47-4.16l157.65-75.1c11.12-5.3,17.22-14.55,18.52-27.6l59.66,88.07c4.87,7.19,4.2,21.39-4.56,25.6l-267.88,128.95c-7.05,3.39-14.65,3.81-21.22.89Z" style="fill:#bebbac;"/><path d="M213.93,315.5c1.02,4.16,5.58,7.95,4.26,13.08l-27.96,108.44c-1.44,5.57-2.71,10.31-4.66,15.14-5.89-1.49-11.37-4.36-15.25-9.45L21.73,247.4c-4.92-6.47-5.55-17.01-.54-23.04l67.77-81.52c-1.64,11.09.23,18.9,6.35,27.06l100.41,133.93c4.68,6.24,11.94,8.42,18.2,11.67Z" style="fill:#dddac8;"/><polygon points="235.73 238.11 242.68 249.09 216.89 260.65 148.18 159.94 175.53 148.43 181.86 158.31 167.41 164.38 223.16 243.75 235.73 238.11" style="fill:#4d4b54;"/><polygon points="322.28 198.8 336.63 192.08 282.52 114.13 268.93 120.26 263.07 111.47 289.19 98.94 356.36 194.97 329.15 207.94 322.28 198.8" style="fill:#4d4b54;"/><path d="M245.3,160.41c9.03,15.98,17.59,31.55,25.28,48.2,7.43,16.09,16.44,39,4.36,54.53-5.6,7.2-13.93,10.74-22.32,9.15-3.42-.65-5.8-2.78-5.93-5.92-.12-2.78,1.59-5.75,4.93-6.61,2.7-.69,6.2-.29,8.92.64,5.17,1.76,9.75-.71,11.18-6.18,1.14-4.4.26-9.46-1.57-13.97-4.76-11.73-10.73-22.33-17-33.4l-21.8-38.5c-.25-.44-6.36-11.42-6.36-11.42-2.87-6.21-16.16-25.52-5.57-44.8,5.23-9.53,15.89-15.13,26.35-12.59,3.15.76,5.82,3.09,6.27,5.63.57,3.22-1.12,6.43-4.3,7.81-8,3.48-12.19-4.65-17.66-2.08-7.12,3.35-3.91,13.49-1.03,19.02l10.48,20.15c2.29,4.41,1.97,3.58,5.79,10.33Z" style="fill:#bf4e6a;"/><polygon points="219.23 179.81 213.82 171.75 264.09 148.47 269.11 155.96 219.23 179.81" style="fill:#bf4e6a;"/></svg>
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "Fontist",
3
+ "short_name": "Fontist",
4
+ "icons": [
5
+ {
6
+ "src": "/web-app-manifest-192x192.png",
7
+ "sizes": "192x192",
8
+ "type": "image/png",
9
+ "purpose": "maskable"
10
+ },
11
+ {
12
+ "src": "/web-app-manifest-512x512.png",
13
+ "sizes": "512x512",
14
+ "type": "image/png",
15
+ "purpose": "maskable"
16
+ }
17
+ ],
18
+ "theme_color": "#ffffff",
19
+ "background_color": "#ffffff",
20
+ "display": "standalone"
21
+ }
data/lib/fontist/cli.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  require "thor"
2
- require_relative "../fontist"
3
2
  require_relative "cli/class_options"
4
3
  require_relative "cli/thor_ext"
5
4
  require_relative "repo_cli"
@@ -1,3 +1,3 @@
1
1
  module Fontist
2
- VERSION = "2.1.3".freeze
2
+ VERSION = "2.1.4".freeze
3
3
  end