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.
- checksums.yaml +4 -4
- data/.github/workflows/docs.yml +70 -0
- data/.github/workflows/links.yml +100 -0
- data/.gitignore +2 -1
- data/docs/.vitepress/config.ts +153 -32
- data/docs/.vitepress/data/cli-commands.json +461 -0
- data/docs/.vitepress/data/exit-codes.json +21 -0
- data/docs/.vitepress/data/features.json +44 -0
- data/docs/.vitepress/theme/components/HeroCodeBlock.vue +98 -0
- data/docs/.vitepress/theme/components/WithinHero.vue +30 -0
- data/docs/.vitepress/theme/index.ts +12 -0
- data/docs/.vitepress/theme/style.css +152 -0
- data/docs/api/errors.md +211 -0
- data/docs/api/font.md +101 -0
- data/docs/api/fontconfig.md +82 -0
- data/docs/api/formula.md +103 -0
- data/docs/api/index.md +49 -0
- data/docs/api/manifest.md +209 -0
- data/docs/cli/cache.md +100 -0
- data/docs/cli/config.md +123 -0
- data/docs/cli/create-formula.md +65 -0
- data/docs/cli/exit-codes.md +73 -0
- data/docs/cli/fontconfig.md +85 -0
- data/docs/cli/import.md +136 -0
- data/docs/cli/index-cmd.md +37 -0
- data/docs/cli/index.md +80 -0
- data/docs/cli/install.md +52 -0
- data/docs/cli/list.md +39 -0
- data/docs/cli/manifest.md +110 -0
- data/docs/cli/repo.md +142 -0
- data/docs/cli/status.md +39 -0
- data/docs/cli/uninstall.md +34 -0
- data/docs/cli/update.md +31 -0
- data/docs/cli/version.md +38 -0
- data/docs/components/CliCommand.vue +77 -0
- data/docs/components/CliExamples.vue +17 -0
- data/docs/components/CliOptions.vue +26 -0
- data/docs/components/ExitCodes.vue +18 -0
- data/docs/guide/ci.md +4 -0
- data/docs/guide/concepts/fonts.md +158 -0
- data/docs/guide/concepts/formats.md +234 -0
- data/docs/guide/concepts/index.md +109 -0
- data/docs/guide/concepts/licenses.md +236 -0
- data/docs/guide/concepts/requirements.md +388 -0
- data/docs/guide/concepts/variable-fonts.md +212 -0
- data/docs/guide/formulas.md +192 -0
- data/docs/guide/how-it-works.md +428 -0
- data/docs/guide/index.md +26 -47
- data/docs/guide/installation.md +105 -0
- data/docs/guide/manifests.md +132 -0
- data/docs/guide/quick-start.md +76 -0
- data/docs/guide/why.md +4 -0
- data/docs/index.md +55 -23
- data/docs/lychee.toml +33 -0
- data/docs/package-lock.json +9 -114
- data/docs/package.json +3 -5
- data/docs/public/apple-touch-icon.png +0 -0
- data/docs/public/favicon-96x96.png +0 -0
- data/docs/public/favicon.ico +0 -0
- data/docs/public/favicon.svg +1 -0
- data/docs/public/logo-full.svg +1 -0
- data/docs/public/logo.svg +1 -0
- data/docs/public/site.webmanifest +21 -0
- data/docs/public/web-app-manifest-192x192.png +0 -0
- data/docs/public/web-app-manifest-512x512.png +0 -0
- data/lib/fontist/cli.rb +0 -1
- data/lib/fontist/version.rb +1 -1
- metadata +58 -8
- data/.github/workflows/deploy-pages.yml +0 -54
- data/.github/workflows/release.yml.orig +0 -36
- data/docs/guide/api-ruby.md +0 -189
- data/docs/public/hero.png +0 -0
- data/docs/public/logo.png +0 -0
- data/docs/reference/index.md +0 -143
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 53b62fd1983ad3739ec4869071a9a3517ead3f581f0cbc04987bd5cc8ac6bdbf
|
|
4
|
+
data.tar.gz: ce3a64130bfcb4310f3adeeb79c8a62cfe3412f20c1cacb6c68482b11ad60ef6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 36addd8934bcbd3a128c6850921cd66739e992ecaae65464c01457509f7b68c410a83a55efbf5698f0ae88b789f9d620ffb17751effcea718b2f876b4531c99d
|
|
7
|
+
data.tar.gz: 27f7c34fdfbd88460a95d0b3bdb03c34fc1aa4cdbcd2cd835d520e6363b288e5fd5a8417b69227c34fd3bf45f78c86b8b0fd2cf139e13931bfcced52271941f4
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
name: Documentation
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
paths:
|
|
8
|
+
- 'docs/**'
|
|
9
|
+
- '.github/workflows/docs.yml'
|
|
10
|
+
pull_request:
|
|
11
|
+
paths:
|
|
12
|
+
- 'docs/**'
|
|
13
|
+
workflow_dispatch:
|
|
14
|
+
|
|
15
|
+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
|
16
|
+
permissions:
|
|
17
|
+
contents: read
|
|
18
|
+
pages: write
|
|
19
|
+
id-token: write
|
|
20
|
+
|
|
21
|
+
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
|
22
|
+
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
|
23
|
+
concurrency:
|
|
24
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
25
|
+
cancel-in-progress: false
|
|
26
|
+
|
|
27
|
+
jobs:
|
|
28
|
+
build:
|
|
29
|
+
runs-on: ubuntu-latest
|
|
30
|
+
steps:
|
|
31
|
+
- name: Checkout
|
|
32
|
+
uses: actions/checkout@v6
|
|
33
|
+
|
|
34
|
+
- name: Setup Pages
|
|
35
|
+
id: pages
|
|
36
|
+
uses: actions/configure-pages@v5
|
|
37
|
+
|
|
38
|
+
- name: Setup Node
|
|
39
|
+
uses: actions/setup-node@v6
|
|
40
|
+
with:
|
|
41
|
+
node-version: 24
|
|
42
|
+
cache: 'npm'
|
|
43
|
+
cache-dependency-path: docs/package-lock.json
|
|
44
|
+
|
|
45
|
+
- name: Install dependencies
|
|
46
|
+
run: npm ci
|
|
47
|
+
working-directory: docs
|
|
48
|
+
|
|
49
|
+
- name: Build
|
|
50
|
+
run: npm run build
|
|
51
|
+
working-directory: docs
|
|
52
|
+
|
|
53
|
+
- name: Upload artifact
|
|
54
|
+
uses: actions/upload-pages-artifact@v4
|
|
55
|
+
with:
|
|
56
|
+
path: docs/.vitepress/dist
|
|
57
|
+
|
|
58
|
+
# Deployment job
|
|
59
|
+
deploy:
|
|
60
|
+
environment:
|
|
61
|
+
name: github-pages
|
|
62
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
63
|
+
if: github.ref_name == github.event.repository.default_branch
|
|
64
|
+
runs-on: ubuntu-latest
|
|
65
|
+
needs: build
|
|
66
|
+
steps:
|
|
67
|
+
- name: Deploy to GitHub Pages
|
|
68
|
+
id: deployment
|
|
69
|
+
uses: actions/deploy-pages@v4
|
|
70
|
+
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
name: Link Checker
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
paths:
|
|
8
|
+
- 'docs/**'
|
|
9
|
+
pull_request:
|
|
10
|
+
paths:
|
|
11
|
+
- 'docs/**'
|
|
12
|
+
schedule:
|
|
13
|
+
# Run weekly on Sunday at 00:00 UTC
|
|
14
|
+
- cron: '0 0 * * 0'
|
|
15
|
+
workflow_dispatch:
|
|
16
|
+
|
|
17
|
+
permissions:
|
|
18
|
+
contents: read
|
|
19
|
+
pull-requests: write
|
|
20
|
+
|
|
21
|
+
jobs:
|
|
22
|
+
link_checker:
|
|
23
|
+
runs-on: ubuntu-latest
|
|
24
|
+
steps:
|
|
25
|
+
- uses: actions/checkout@v6
|
|
26
|
+
|
|
27
|
+
- name: Setup Node
|
|
28
|
+
uses: actions/setup-node@v6
|
|
29
|
+
with:
|
|
30
|
+
node-version: 24
|
|
31
|
+
cache: 'npm'
|
|
32
|
+
cache-dependency-path: docs/package-lock.json
|
|
33
|
+
|
|
34
|
+
- name: Install dependencies
|
|
35
|
+
run: npm ci
|
|
36
|
+
working-directory: docs
|
|
37
|
+
|
|
38
|
+
- name: Build
|
|
39
|
+
run: npm run build
|
|
40
|
+
working-directory: docs
|
|
41
|
+
|
|
42
|
+
- name: Restore lychee cache
|
|
43
|
+
uses: actions/cache@v4
|
|
44
|
+
with:
|
|
45
|
+
path: .lycheecache
|
|
46
|
+
key: cache-lychee-${{ github.sha }}
|
|
47
|
+
restore-keys: cache-lychee-
|
|
48
|
+
|
|
49
|
+
- name: Check if site was built
|
|
50
|
+
run: |
|
|
51
|
+
if [ ! -d "dist" ]; then
|
|
52
|
+
echo "Error: dist directory not created"
|
|
53
|
+
exit 1
|
|
54
|
+
fi
|
|
55
|
+
echo "Site built successfully"
|
|
56
|
+
ls -la dist/
|
|
57
|
+
working-directory: docs/.vitepress
|
|
58
|
+
|
|
59
|
+
- name: Link Checker
|
|
60
|
+
uses: lycheeverse/lychee-action@v2
|
|
61
|
+
with:
|
|
62
|
+
args: >-
|
|
63
|
+
--verbose
|
|
64
|
+
--no-progress
|
|
65
|
+
--config lychee.toml
|
|
66
|
+
--root-dir "$(pwd)/.vitepress/dist"
|
|
67
|
+
--base-url file://${{ github.workspace }}/docs/.vitepress/dist
|
|
68
|
+
'.vitepress/dist/**/*.html'
|
|
69
|
+
fail: true
|
|
70
|
+
output: link-check-results.md
|
|
71
|
+
format: markdown
|
|
72
|
+
workingDirectory: docs
|
|
73
|
+
|
|
74
|
+
- name: Upload link check results
|
|
75
|
+
if: always()
|
|
76
|
+
uses: actions/upload-artifact@v4
|
|
77
|
+
with:
|
|
78
|
+
name: link-check-results
|
|
79
|
+
path: link-check-results.md
|
|
80
|
+
retention-days: 30
|
|
81
|
+
|
|
82
|
+
- name: Comment PR with results
|
|
83
|
+
if: failure() && github.event_name == 'pull_request'
|
|
84
|
+
uses: actions/github-script@v7
|
|
85
|
+
with:
|
|
86
|
+
script: |
|
|
87
|
+
const fs = require('fs');
|
|
88
|
+
let comment = '## 🔗 Link Check Failed\n\n';
|
|
89
|
+
|
|
90
|
+
if (fs.existsSync('link-check-results.md')) {
|
|
91
|
+
const results = fs.readFileSync('link-check-results.md', 'utf8');
|
|
92
|
+
comment += '### Results\n\n' + results + '\n\n';
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
github.rest.issues.createComment({
|
|
96
|
+
issue_number: context.issue.number,
|
|
97
|
+
owner: context.repo.owner,
|
|
98
|
+
repo: context.repo.repo,
|
|
99
|
+
body: comment
|
|
100
|
+
});
|
data/.gitignore
CHANGED
data/docs/.vitepress/config.ts
CHANGED
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
import { defineConfig } from "vitepress";
|
|
2
|
+
import { fileURLToPath, URL } from "node:url";
|
|
2
3
|
|
|
3
4
|
// https://vitepress.dev/reference/site-config
|
|
4
5
|
export default defineConfig({
|
|
6
|
+
// Register custom components
|
|
7
|
+
vite: {
|
|
8
|
+
resolve: {
|
|
9
|
+
alias: {
|
|
10
|
+
"@components": fileURLToPath(new URL("../components", import.meta.url)),
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
lang: "en-US",
|
|
15
|
+
|
|
5
16
|
// https://vitepress.dev/guide/routing#generating-clean-url
|
|
6
17
|
cleanUrls: true,
|
|
7
18
|
|
|
@@ -9,63 +20,173 @@ export default defineConfig({
|
|
|
9
20
|
description:
|
|
10
21
|
"Fontist brings cross-platform font management to the command line for Windows, Linux, and macOS. Free and open source.",
|
|
11
22
|
|
|
12
|
-
|
|
13
|
-
|
|
23
|
+
lastUpdated: true,
|
|
24
|
+
|
|
25
|
+
// Base path for deployment (e.g., /fontist/ for fontist.org/fontist/)
|
|
26
|
+
base: process.env.BASE_PATH || "/fontist/",
|
|
27
|
+
|
|
28
|
+
head: [
|
|
29
|
+
[
|
|
30
|
+
"link",
|
|
31
|
+
{ rel: "icon", type: "image/png", href: "/favicon-96x96.png", sizes: "96x96" },
|
|
32
|
+
],
|
|
33
|
+
["link", { rel: "icon", type: "image/svg+xml", href: "/favicon.svg" }],
|
|
34
|
+
["link", { rel: "shortcut icon", href: "/favicon.ico" }],
|
|
35
|
+
[
|
|
36
|
+
"link",
|
|
37
|
+
{ rel: "apple-touch-icon", sizes: "180x180", href: "/apple-touch-icon.png" },
|
|
38
|
+
],
|
|
39
|
+
["link", { rel: "manifest", href: "/site.webmanifest" }],
|
|
40
|
+
["meta", { property: "og:type", content: "website" }],
|
|
41
|
+
["meta", { property: "og:title", content: "Fontist" }],
|
|
42
|
+
[
|
|
43
|
+
"meta",
|
|
44
|
+
{
|
|
45
|
+
property: "og:description",
|
|
46
|
+
content:
|
|
47
|
+
"Fontist brings cross-platform font management to the command line for Windows, Linux, and macOS.",
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
["meta", { property: "og:image", content: "/logo-full.svg" }],
|
|
51
|
+
["meta", { name: "twitter:card", content: "summary_large_image" }],
|
|
52
|
+
],
|
|
14
53
|
|
|
15
54
|
// https://vitepress.dev/reference/default-theme-config
|
|
16
55
|
themeConfig: {
|
|
17
|
-
logo: "/logo.
|
|
56
|
+
logo: "/logo-full.svg",
|
|
57
|
+
siteTitle: false,
|
|
58
|
+
|
|
59
|
+
// Local search with MiniSearch
|
|
60
|
+
search: {
|
|
61
|
+
provider: "local",
|
|
62
|
+
options: {
|
|
63
|
+
detailedView: true,
|
|
64
|
+
miniSearch: {
|
|
65
|
+
searchOptions: {
|
|
66
|
+
fuzzy: 0.2,
|
|
67
|
+
prefix: true,
|
|
68
|
+
boost: { title: 4, text: 2, titles: 1 },
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
},
|
|
18
73
|
|
|
19
74
|
nav: [
|
|
20
|
-
{ text: "
|
|
75
|
+
{ text: "← Fontist.org", link: "https://www.fontist.org" },
|
|
21
76
|
{ text: "Guide", link: "/guide/" },
|
|
22
|
-
{ text: "
|
|
23
|
-
{
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
target: "_self",
|
|
27
|
-
},
|
|
77
|
+
{ text: "CLI", link: "/cli/" },
|
|
78
|
+
{ text: "API", link: "/api/" },
|
|
79
|
+
{ text: "Formulas", link: "https://www.fontist.org/formulas/", target: "_self" },
|
|
80
|
+
{ text: "Fontisan", link: "https://www.fontist.org/fontisan/", target: "_self" },
|
|
28
81
|
],
|
|
29
82
|
|
|
30
83
|
sidebar: {
|
|
31
84
|
"/guide/": [
|
|
32
85
|
{
|
|
33
|
-
text: "
|
|
86
|
+
text: "Getting Started",
|
|
87
|
+
items: [
|
|
88
|
+
{ text: "Introduction", link: "/guide/" },
|
|
89
|
+
{ text: "Installation", link: "/guide/installation" },
|
|
90
|
+
{ text: "Quick Start", link: "/guide/quick-start" },
|
|
91
|
+
],
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
text: "Concepts",
|
|
34
95
|
items: [
|
|
96
|
+
{ text: "Overview", link: "/guide/concepts/" },
|
|
97
|
+
{ text: "Fonts & Styles", link: "/guide/concepts/fonts" },
|
|
98
|
+
{ text: "Variable Fonts", link: "/guide/concepts/variable-fonts" },
|
|
99
|
+
{ text: "Formats & Containers", link: "/guide/concepts/formats" },
|
|
100
|
+
{ text: "Licenses", link: "/guide/concepts/licenses" },
|
|
101
|
+
{ text: "Requirements", link: "/guide/concepts/requirements" },
|
|
102
|
+
],
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
text: "Learn More",
|
|
106
|
+
collapsed: true,
|
|
107
|
+
items: [
|
|
108
|
+
{ text: "How Fontist Works", link: "/guide/how-it-works" },
|
|
35
109
|
{ text: "Why Fontist?", link: "/guide/why" },
|
|
36
|
-
{ text: "
|
|
37
|
-
{ text: "
|
|
38
|
-
{ text: "Fontist with Fontconfig", link: "/guide/fontconfig" },
|
|
39
|
-
{ text: "Using Fontist with a proxy", link: "/guide/proxy" },
|
|
40
|
-
{
|
|
41
|
-
text: "Create a new Fontist Formula",
|
|
42
|
-
link: "https://fontist.org/formulas/guide/create-formula",
|
|
43
|
-
target: "_self",
|
|
44
|
-
},
|
|
110
|
+
{ text: "Manifests", link: "/guide/manifests" },
|
|
111
|
+
{ text: "Formulas", link: "/guide/formulas" },
|
|
45
112
|
],
|
|
46
113
|
},
|
|
47
114
|
{
|
|
48
|
-
text: "
|
|
115
|
+
text: "Guides",
|
|
116
|
+
collapsed: true,
|
|
49
117
|
items: [
|
|
50
|
-
{ text: "
|
|
118
|
+
{ text: "CI/CD Integration", link: "/guide/ci" },
|
|
119
|
+
{ text: "Fontconfig", link: "/guide/fontconfig" },
|
|
120
|
+
{ text: "Proxy Setup", link: "/guide/proxy" },
|
|
51
121
|
{
|
|
52
|
-
text: "
|
|
53
|
-
link: "https://fontist.org/
|
|
122
|
+
text: "Create a Formula",
|
|
123
|
+
link: "https://www.fontist.org/formulas/guide/create-formula",
|
|
54
124
|
target: "_self",
|
|
55
125
|
},
|
|
56
126
|
],
|
|
57
127
|
},
|
|
58
128
|
],
|
|
59
|
-
"/
|
|
129
|
+
"/cli/": [
|
|
130
|
+
{
|
|
131
|
+
text: "CLI Reference",
|
|
132
|
+
items: [
|
|
133
|
+
{ text: "Overview", link: "/cli/" },
|
|
134
|
+
],
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
text: "Core Commands",
|
|
138
|
+
items: [
|
|
139
|
+
{ text: "install", link: "/cli/install" },
|
|
140
|
+
{ text: "uninstall", link: "/cli/uninstall" },
|
|
141
|
+
{ text: "list", link: "/cli/list" },
|
|
142
|
+
{ text: "status", link: "/cli/status" },
|
|
143
|
+
{ text: "update", link: "/cli/update" },
|
|
144
|
+
{ text: "version", link: "/cli/version" },
|
|
145
|
+
],
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
text: "Subcommands",
|
|
149
|
+
collapsed: true,
|
|
150
|
+
items: [
|
|
151
|
+
{ text: "manifest", link: "/cli/manifest" },
|
|
152
|
+
{ text: "cache", link: "/cli/cache" },
|
|
153
|
+
{ text: "config", link: "/cli/config" },
|
|
154
|
+
{ text: "repo", link: "/cli/repo" },
|
|
155
|
+
{ text: "fontconfig", link: "/cli/fontconfig" },
|
|
156
|
+
{ text: "import", link: "/cli/import" },
|
|
157
|
+
{ text: "index", link: "/cli/index-cmd" },
|
|
158
|
+
{ text: "create-formula", link: "/cli/create-formula" },
|
|
159
|
+
],
|
|
160
|
+
},
|
|
60
161
|
{
|
|
61
162
|
text: "Reference",
|
|
163
|
+
collapsed: true,
|
|
62
164
|
items: [
|
|
63
|
-
{ text: "
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
165
|
+
{ text: "Exit Codes", link: "/cli/exit-codes" },
|
|
166
|
+
],
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
"/api/": [
|
|
170
|
+
{
|
|
171
|
+
text: "API Reference",
|
|
172
|
+
items: [
|
|
173
|
+
{ text: "Overview", link: "/api/" },
|
|
174
|
+
],
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
text: "Classes",
|
|
178
|
+
items: [
|
|
179
|
+
{ text: "Fontist::Font", link: "/api/font" },
|
|
180
|
+
{ text: "Fontist::Formula", link: "/api/formula" },
|
|
181
|
+
{ text: "Fontist::Manifest", link: "/api/manifest" },
|
|
182
|
+
{ text: "Fontist::Fontconfig", link: "/api/fontconfig" },
|
|
183
|
+
],
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
text: "Errors",
|
|
187
|
+
collapsed: true,
|
|
188
|
+
items: [
|
|
189
|
+
{ text: "Fontist::Errors", link: "/api/errors" },
|
|
69
190
|
],
|
|
70
191
|
},
|
|
71
192
|
],
|
|
@@ -77,7 +198,7 @@ export default defineConfig({
|
|
|
77
198
|
|
|
78
199
|
footer: {
|
|
79
200
|
message: `Fontist is <a href="https://open.ribose.com/">riboseopen</a>`,
|
|
80
|
-
copyright: `Copyright ©
|
|
201
|
+
copyright: `Copyright © 2026 Ribose Group Inc. All rights reserved.`,
|
|
81
202
|
},
|
|
82
203
|
},
|
|
83
204
|
});
|