fontist 2.1.2 → 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/.github/workflows/rake-metanorma.yaml +21 -3
- data/.github/workflows/release.yml +2 -0
- data/.gitignore +9 -7
- data/README.adoc +100 -0
- 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 +1539 -770
- data/docs/package.json +4 -6
- 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/font_file.rb +65 -14
- data/lib/fontist/indexes/index_mixin.rb +109 -20
- data/lib/fontist/system_index.rb +30 -1
- data/lib/fontist/version.rb +1 -1
- metadata +59 -8
- data/.github/workflows/deploy-pages.yml +0 -54
- 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
- /data/{docs/google-fonts-multi-format-usage.md → google-fonts-multi-format-usage.md} +0 -0
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
|
+
});
|
|
@@ -18,6 +18,7 @@ env:
|
|
|
18
18
|
|
|
19
19
|
jobs:
|
|
20
20
|
prepare:
|
|
21
|
+
# commented for https://github.com/fontist/fontist/issues/428#issuecomment-3992198584
|
|
21
22
|
uses: metanorma/ci/.github/workflows/prepare-rake.yml@main
|
|
22
23
|
|
|
23
24
|
metanorma:
|
|
@@ -34,11 +35,11 @@ jobs:
|
|
|
34
35
|
matrix: ${{ fromJson(needs.prepare.outputs.matrix) }}
|
|
35
36
|
|
|
36
37
|
steps:
|
|
37
|
-
- uses: actions/checkout@
|
|
38
|
+
- uses: actions/checkout@v6
|
|
38
39
|
with:
|
|
39
40
|
repository: metanorma/metanorma
|
|
40
41
|
|
|
41
|
-
- uses: actions/checkout@
|
|
42
|
+
- uses: actions/checkout@v6
|
|
42
43
|
with:
|
|
43
44
|
path: "fontist"
|
|
44
45
|
|
|
@@ -51,6 +52,23 @@ jobs:
|
|
|
51
52
|
bundler: ${{ env.BUNDLER_VER }}
|
|
52
53
|
bundler-cache: true
|
|
53
54
|
|
|
54
|
-
- uses: metanorma/
|
|
55
|
+
- uses: metanorma/ci/inkscape-setup-action@main
|
|
56
|
+
|
|
57
|
+
- name: Configure Git credentials
|
|
58
|
+
env:
|
|
59
|
+
GIT_TOKEN: ${{ secrets.FONTIST_CI_PAT_TOKEN }}
|
|
60
|
+
run: |
|
|
61
|
+
git config --global user.name 'Fontist CI'
|
|
62
|
+
git config --global user.email 'fontist@ribose.com'
|
|
63
|
+
git config --global credential.helper store
|
|
64
|
+
echo "https://fontist-ci:${GIT_TOKEN}@github.com" > ~/.git-credentials
|
|
65
|
+
shell: bash
|
|
66
|
+
|
|
67
|
+
- run: |
|
|
68
|
+
bundle exec fontist update
|
|
69
|
+
bundle exec fontist repo setup metanorma https://github.com/metanorma/fontist-formulas-private.git
|
|
70
|
+
bundle exec fontist repo update metanorma
|
|
71
|
+
shell: bash
|
|
55
72
|
|
|
56
73
|
- run: bundle exec rake
|
|
74
|
+
shell: bash
|
data/.gitignore
CHANGED
|
@@ -9,12 +9,13 @@
|
|
|
9
9
|
Gemfile.lock
|
|
10
10
|
|
|
11
11
|
# fonts
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
/spec/fixtures/fonts/*
|
|
13
|
+
/spec/fixtures/fonts/DejaVuSerif.ttf
|
|
14
|
+
/spec/fixtures/fonts/Rupali.ttf
|
|
15
|
+
/spec/fixtures/formulas/
|
|
16
|
+
/spec/fixtures/*
|
|
17
|
+
!/spec/fixtures/system.yml
|
|
18
|
+
!/spec/fixtures/fonts/corrupt/*
|
|
18
19
|
|
|
19
20
|
# rspec failure tracking
|
|
20
21
|
.rspec_status
|
|
@@ -27,7 +28,8 @@ Gemfile.lock
|
|
|
27
28
|
.kilocode
|
|
28
29
|
.claude
|
|
29
30
|
old-docs/
|
|
30
|
-
.md
|
|
31
|
+
CLAUDE.md
|
|
31
32
|
|
|
32
33
|
# macOS font catalogs (downloaded via rake task)
|
|
33
34
|
/spec/fixtures/macos_catalogs/com_apple_MobileAsset_Font*.xml
|
|
35
|
+
|
data/README.adoc
CHANGED
|
@@ -69,6 +69,106 @@ legacy `ttfunk` and `extract_ttc` gems), and `marcel` for MIME type detection
|
|
|
69
69
|
(replacing `mime-types`). These changes improve cross-platform compatibility
|
|
70
70
|
and eliminate external binary dependencies.
|
|
71
71
|
|
|
72
|
+
=== Prerequisites
|
|
73
|
+
|
|
74
|
+
Some of Fontist's dependencies require native compilation during installation.
|
|
75
|
+
The following build tools are required depending on your platform.
|
|
76
|
+
|
|
77
|
+
==== Ubuntu/Debian
|
|
78
|
+
|
|
79
|
+
[source,sh]
|
|
80
|
+
----
|
|
81
|
+
sudo apt-get install build-essential ruby-dev git
|
|
82
|
+
----
|
|
83
|
+
|
|
84
|
+
* `build-essential` provides `gcc` and `g++` compilers needed for native gem extensions
|
|
85
|
+
* `ruby-dev` provides Ruby headers required for gem compilation
|
|
86
|
+
* `git` is required for `fontist update` and `fontist repo` commands
|
|
87
|
+
|
|
88
|
+
==== Fedora/RHEL/CentOS
|
|
89
|
+
|
|
90
|
+
[source,sh]
|
|
91
|
+
----
|
|
92
|
+
sudo dnf install gcc gcc-c++ make ruby-devel git
|
|
93
|
+
----
|
|
94
|
+
|
|
95
|
+
For RHEL/CentOS 7 or earlier, use `yum` instead of `dnf`.
|
|
96
|
+
|
|
97
|
+
==== macOS
|
|
98
|
+
|
|
99
|
+
[source,sh]
|
|
100
|
+
----
|
|
101
|
+
xcode-select --install
|
|
102
|
+
----
|
|
103
|
+
|
|
104
|
+
This installs the Xcode Command Line Tools which include:
|
|
105
|
+
|
|
106
|
+
* `clang` compiler (compatible with gcc/g++)
|
|
107
|
+
* `git` command-line tool
|
|
108
|
+
* Required headers and libraries for native gem compilation
|
|
109
|
+
|
|
110
|
+
==== Windows
|
|
111
|
+
|
|
112
|
+
1. Install Ruby using https://rubyinstaller.org/downloads/[RubyInstaller] *with DevKit*
|
|
113
|
+
(select the "Ruby+Devkit" version)
|
|
114
|
+
|
|
115
|
+
2. After installation, run the following in a command prompt to set up MSYS2:
|
|
116
|
+
+
|
|
117
|
+
[source,cmd]
|
|
118
|
+
----
|
|
119
|
+
ridk install
|
|
120
|
+
----
|
|
121
|
+
+
|
|
122
|
+
Select option 3 (MSYS2 and MINGW development toolchain) when prompted.
|
|
123
|
+
|
|
124
|
+
3. Install https://git-scm.com/download/win[Git for Windows]
|
|
125
|
+
|
|
126
|
+
==== Optional: Fontconfig (Linux)
|
|
127
|
+
|
|
128
|
+
On Linux systems, if you want to use `fontist fontconfig update` to make Fontist
|
|
129
|
+
fonts available to other applications, install fontconfig:
|
|
130
|
+
|
|
131
|
+
[source,sh]
|
|
132
|
+
----
|
|
133
|
+
# Ubuntu/Debian
|
|
134
|
+
sudo apt-get install fontconfig
|
|
135
|
+
|
|
136
|
+
# Fedora/RHEL/CentOS
|
|
137
|
+
sudo dnf install fontconfig
|
|
138
|
+
----
|
|
139
|
+
|
|
140
|
+
==== Why are build tools needed?
|
|
141
|
+
|
|
142
|
+
Fontist depends on several gems that include native C/C++ extensions:
|
|
143
|
+
|
|
144
|
+
[cols="1,1,2"]
|
|
145
|
+
|===
|
|
146
|
+
|Gem |Compiler |Purpose
|
|
147
|
+
|
|
148
|
+
|`json`
|
|
149
|
+
|gcc
|
|
150
|
+
|JSON processing
|
|
151
|
+
|
|
152
|
+
|`brotli` (via fontisan)
|
|
153
|
+
|gcc
|
|
154
|
+
|WOFF2 font decompression
|
|
155
|
+
|
|
156
|
+
|`seven-zip` (via excavate)
|
|
157
|
+
|g++
|
|
158
|
+
|7z archive extraction
|
|
159
|
+
|
|
160
|
+
|`libmspack` (via excavate)
|
|
161
|
+
|gcc
|
|
162
|
+
|CAB/CHM archive extraction
|
|
163
|
+
|
|
164
|
+
|`ffi-libarchive-binary` (via excavate)
|
|
165
|
+
|gcc
|
|
166
|
+
|Archive extraction (zip, tar, etc.)
|
|
167
|
+
|===
|
|
168
|
+
|
|
169
|
+
NOTE: Some gems like `nokogiri` and `ffi` provide prebuilt binaries for common
|
|
170
|
+
platforms, so they typically don't require compilation.
|
|
171
|
+
|
|
72
172
|
|
|
73
173
|
== Using the command-line interface (CLI)
|
|
74
174
|
|
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
|
});
|