fontist 2.1.3 → 2.1.5
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 +3 -1
- data/Gemfile +1 -0
- data/docs/.vitepress/config.ts +170 -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 +71 -0
- data/docs/cli/exit-codes.md +73 -0
- data/docs/cli/fontconfig.md +85 -0
- data/docs/cli/import.md +140 -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 +265 -0
- data/docs/guide/how-it-works.md +428 -0
- data/docs/guide/index.md +26 -47
- data/docs/guide/installation.md +167 -0
- data/docs/guide/maintainer/import.md +372 -0
- data/docs/guide/maintainer/index.md +37 -0
- data/docs/guide/manifests.md +132 -0
- data/docs/guide/platforms/index.md +72 -0
- data/docs/guide/platforms/macos.md +151 -0
- data/docs/guide/platforms/windows.md +220 -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/fontist.gemspec +0 -1
- data/lib/fontist/cache/manager.rb +0 -2
- data/lib/fontist/cache.rb +6 -0
- data/lib/fontist/cli/thor_ext.rb +0 -2
- data/lib/fontist/cli.rb +0 -10
- data/lib/fontist/collection_file.rb +0 -3
- data/lib/fontist/font.rb +0 -6
- data/lib/fontist/font_collection.rb +0 -1
- data/lib/fontist/font_file.rb +0 -1
- data/lib/fontist/font_installer.rb +0 -5
- data/lib/fontist/font_model.rb +0 -1
- data/lib/fontist/font_path.rb +0 -2
- data/lib/fontist/formula.rb +0 -13
- data/lib/fontist/formula_picker.rb +0 -2
- data/lib/fontist/google_import_source.rb +0 -2
- data/lib/fontist/import/convert_formulas.rb +0 -2
- data/lib/fontist/import/create_formula.rb +0 -4
- data/lib/fontist/import/files/collection_file.rb +0 -1
- data/lib/fontist/import/files.rb +8 -0
- data/lib/fontist/import/font_metadata_extractor.rb +0 -1
- data/lib/fontist/import/formula_builder.rb +0 -6
- data/lib/fontist/import/google/api.rb +0 -9
- data/lib/fontist/import/google/data_sources/base.rb +0 -1
- data/lib/fontist/import/google/data_sources/github.rb +0 -3
- data/lib/fontist/import/google/data_sources/ttf.rb +0 -2
- data/lib/fontist/import/google/data_sources/vf.rb +0 -2
- data/lib/fontist/import/google/data_sources/woff2.rb +0 -2
- data/lib/fontist/import/google/data_sources.rb +13 -0
- data/lib/fontist/import/google/font_database.rb +0 -10
- data/lib/fontist/import/google/metadata_adapter.rb +0 -1
- data/lib/fontist/import/google/models/font_family.rb +0 -1
- data/lib/fontist/import/google/models/metadata.rb +1 -9
- data/lib/fontist/import/google/models/source_metadata.rb +0 -1
- data/lib/fontist/import/google/models.rb +16 -0
- data/lib/fontist/import/google.rb +7 -2
- data/lib/fontist/import/google_fonts_importer.rb +0 -5
- data/lib/fontist/import/google_import.rb +1 -8
- data/lib/fontist/import/helpers.rb +8 -0
- data/lib/fontist/import/macos.rb +0 -6
- data/lib/fontist/import/manual_formula_builder.rb +0 -2
- data/lib/fontist/import/models.rb +7 -0
- data/lib/fontist/import/otf/font_file.rb +0 -2
- data/lib/fontist/import/otf.rb +7 -0
- data/lib/fontist/import/recursive_extraction.rb +0 -5
- data/lib/fontist/import/sil_import.rb +0 -3
- data/lib/fontist/import/upgrade_formulas.rb +1 -11
- data/lib/fontist/import.rb +23 -0
- data/lib/fontist/import_cli.rb +0 -9
- data/lib/fontist/index.rb +0 -4
- data/lib/fontist/index_cli.rb +0 -2
- data/lib/fontist/indexes/base_font_collection_index.rb +0 -1
- data/lib/fontist/indexes/default_family_font_index.rb +0 -2
- data/lib/fontist/indexes/directory_snapshot.rb +0 -2
- data/lib/fontist/indexes/filename_index.rb +0 -2
- data/lib/fontist/indexes/font_index.rb +0 -3
- data/lib/fontist/indexes/fontist_index.rb +0 -2
- data/lib/fontist/indexes/incremental_index_updater.rb +0 -4
- data/lib/fontist/indexes/preferred_family_font_index.rb +0 -2
- data/lib/fontist/indexes/system_index.rb +0 -2
- data/lib/fontist/indexes/user_index.rb +0 -2
- data/lib/fontist/indexes.rb +18 -0
- data/lib/fontist/install_location.rb +0 -4
- data/lib/fontist/install_locations/fontist_location.rb +0 -2
- data/lib/fontist/install_locations/system_location.rb +0 -2
- data/lib/fontist/install_locations/user_location.rb +0 -2
- data/lib/fontist/install_locations.rb +8 -0
- data/lib/fontist/macos/catalog/asset.rb +0 -2
- data/lib/fontist/macos/catalog/base_parser.rb +0 -1
- data/lib/fontist/macos/catalog/catalog_manager.rb +0 -6
- data/lib/fontist/macos/catalog/font3_parser.rb +0 -2
- data/lib/fontist/macos/catalog/font4_parser.rb +0 -2
- data/lib/fontist/macos/catalog/font5_parser.rb +0 -2
- data/lib/fontist/macos/catalog/font6_parser.rb +0 -2
- data/lib/fontist/macos/catalog/font7_parser.rb +0 -2
- data/lib/fontist/macos/catalog/font8_parser.rb +0 -2
- data/lib/fontist/macos/catalog.rb +15 -0
- data/lib/fontist/macos.rb +5 -0
- data/lib/fontist/macos_import_source.rb +0 -2
- data/lib/fontist/manifest_request.rb +0 -1
- data/lib/fontist/manifest_response.rb +0 -1
- data/lib/fontist/resources.rb +7 -0
- data/lib/fontist/sil_import_source.rb +0 -2
- data/lib/fontist/system_font.rb +0 -2
- data/lib/fontist/system_index.rb +0 -4
- data/lib/fontist/utils/cache.rb +0 -2
- data/lib/fontist/utils/downloader.rb +0 -4
- data/lib/fontist/utils.rb +10 -8
- data/lib/fontist/validate_cli.rb +0 -4
- data/lib/fontist/validator.rb +0 -2
- data/lib/fontist/version.rb +1 -1
- data/lib/fontist.rb +82 -36
- metadata +75 -22
- 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
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: macOS Platform Guide
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# macOS Platform Guide
|
|
6
|
+
|
|
7
|
+
Fontist provides special support for macOS supplementary fonts, a framework introduced in macOS 10.12 (Sierra) for dynamically downloading licensed fonts on demand.
|
|
8
|
+
|
|
9
|
+
## Supplementary Fonts Overview
|
|
10
|
+
|
|
11
|
+
macOS provides a "supplementary fonts" framework (shared with iOS) for dynamically downloading and installing a wide range of licensed fonts. These fonts are typically commercial fonts that come free with macOS.
|
|
12
|
+
|
|
13
|
+
### Typical Use Cases
|
|
14
|
+
|
|
15
|
+
- CI jobs on macOS environments using specially-licensed fonts
|
|
16
|
+
- Automating installation of macOS add-on fonts
|
|
17
|
+
- Accessing platform-specific fonts not available elsewhere
|
|
18
|
+
|
|
19
|
+
::: warning Non-macOS Installation
|
|
20
|
+
Fontist does not allow installing macOS-specific fonts on non-macOS platforms due to font license restrictions.
|
|
21
|
+
:::
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Framework Versioning
|
|
26
|
+
|
|
27
|
+
The macOS supplementary font catalog is bound to specific framework versions. Different versions contain different sets of fonts, and often different versions of the same fonts.
|
|
28
|
+
|
|
29
|
+
### Version Compatibility
|
|
30
|
+
|
|
31
|
+
| macOS Version | Framework Version | Platform Tag |
|
|
32
|
+
|---------------|-------------------|--------------|
|
|
33
|
+
| macOS 10.12 (Sierra) | Font 3 | `macos-font3` |
|
|
34
|
+
| macOS 10.13 (High Sierra) | Font 4 | `macos-font4` |
|
|
35
|
+
| macOS 10.14 (Mojave) | Font 5 | `macos-font5` |
|
|
36
|
+
| macOS 10.15 (Catalina) | Font 6 | `macos-font6` |
|
|
37
|
+
| macOS 11 (Big Sur) | Font 6 | `macos-font6` |
|
|
38
|
+
| macOS 12 (Monterey) | Font 7 | `macos-font7` |
|
|
39
|
+
| macOS 13 (Ventura) | Font 7 | `macos-font7` |
|
|
40
|
+
| macOS 14 (Sonoma) | Font 7 | `macos-font7` |
|
|
41
|
+
| macOS 15 (Sequoia) | Font 7 | `macos-font7` |
|
|
42
|
+
| macOS 26+ (Tahoe) | Font 8 | `macos-font8` |
|
|
43
|
+
|
|
44
|
+
### How Versioning Works
|
|
45
|
+
|
|
46
|
+
A macOS system can only download fonts from the catalog version corresponding to its framework version. Fontist respects this limitation when installing these fonts.
|
|
47
|
+
|
|
48
|
+
When you install a macOS add-on font, Fontist automatically detects your macOS version and installs the appropriate font version:
|
|
49
|
+
|
|
50
|
+
```sh
|
|
51
|
+
fontist install "Al Bayan"
|
|
52
|
+
# On macOS 15: installs Font7 version formula
|
|
53
|
+
# On macOS 26: installs Font8 version formula
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
This ensures you always get the font version compatible with your system.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Platform Tags
|
|
61
|
+
|
|
62
|
+
In Fontist Formulas, each supplementary font is backed by a formula specifying the font framework version using platform tags.
|
|
63
|
+
|
|
64
|
+
### Tag Format
|
|
65
|
+
|
|
66
|
+
Platform tags follow the pattern: `macos-fontX` where `X` is the catalog version number.
|
|
67
|
+
|
|
68
|
+
### Version Compatibility Checking
|
|
69
|
+
|
|
70
|
+
Fontist controls version compatibility through platform tags:
|
|
71
|
+
|
|
72
|
+
```sh
|
|
73
|
+
# On macOS 14.2 (Sonoma), trying to install a Font8-only formula:
|
|
74
|
+
fontist install "Font8OnlyFont"
|
|
75
|
+
|
|
76
|
+
# Error output:
|
|
77
|
+
# Font 'Font8OnlyFont' is only available for: macos-font8.
|
|
78
|
+
# Your current platform is: macos. Your macOS version is: 14.2.1.
|
|
79
|
+
# This font requires macOS 26.0 or later.
|
|
80
|
+
# This font cannot be installed on your system.
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Manual Installation Methods
|
|
86
|
+
|
|
87
|
+
On macOS, supplementary fonts can also be installed manually:
|
|
88
|
+
|
|
89
|
+
### Method 1: Application Trigger
|
|
90
|
+
|
|
91
|
+
User applications can trigger installation when needed, as described in Apple's ["DownloadFont" sample code](https://developer.apple.com/library/archive/samplecode/DownloadFont/Introduction/Intro.html).
|
|
92
|
+
|
|
93
|
+
### Method 2: Font Book
|
|
94
|
+
|
|
95
|
+
1. Open **Font Book.app**
|
|
96
|
+
2. Search for the desired font
|
|
97
|
+
3. Click "Download"
|
|
98
|
+
|
|
99
|
+
Both methods trigger a download from Apple's Mobile Asset Server.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Asset Catalog Locations
|
|
104
|
+
|
|
105
|
+
The asset catalog XML files are located at:
|
|
106
|
+
|
|
107
|
+
| Version | System Path |
|
|
108
|
+
|---------|-------------|
|
|
109
|
+
| Font 3 | `/System/Library/Assets/com_apple_MobileAsset_Font3/com_apple_MobileAsset_Font3.xml` |
|
|
110
|
+
| Font 4 | `/System/Library/Assets/com_apple_MobileAsset_Font4/com_apple_MobileAsset_Font4.xml` |
|
|
111
|
+
| Font 5 | `/System/Library/AssetsV2/com_apple_MobileAsset_Font5/com_apple_MobileAsset_Font5.xml` |
|
|
112
|
+
| Font 6 | `/System/Library/AssetsV2/com_apple_MobileAsset_Font6/com_apple_MobileAsset_Font6.xml` |
|
|
113
|
+
| Font 7 | `/System/Library/AssetsV2/com_apple_MobileAsset_Font7/com_apple_MobileAsset_Font7.xml` |
|
|
114
|
+
| Font 8 | `/System/Library/AssetsV2/com_apple_MobileAsset_Font8/com_apple_MobileAsset_Font8.xml` |
|
|
115
|
+
|
|
116
|
+
::: note Schema Differences
|
|
117
|
+
The Assets and AssetsV2 frameworks use slightly different Plist schemas.
|
|
118
|
+
:::
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Font Sources by macOS Version
|
|
123
|
+
|
|
124
|
+
For the complete list of available fonts on each macOS version, see Apple's support pages:
|
|
125
|
+
|
|
126
|
+
| macOS Version | Apple Support Link |
|
|
127
|
+
|---------------|-------------------|
|
|
128
|
+
| macOS 15 (Sequoia) | [Fonts included with macOS Sequoia](https://support.apple.com/en-us/120414) |
|
|
129
|
+
| macOS 14 (Sonoma) | [Fonts included with macOS Sonoma](https://support.apple.com/en-us/108939) |
|
|
130
|
+
|
|
131
|
+
::: note Older macOS Versions
|
|
132
|
+
Apple may remove or relocate support articles for older macOS versions. For Ventura, Monterey, Big Sur, and earlier versions, use Font Book on your Mac to view available fonts, or search Apple Support for the specific version.
|
|
133
|
+
:::
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Example: Installing Canela
|
|
138
|
+
|
|
139
|
+
Canela is a commercial font that comes free with macOS:
|
|
140
|
+
|
|
141
|
+
```sh
|
|
142
|
+
fontist install Canela
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## See Also
|
|
148
|
+
|
|
149
|
+
- [How Fontist Works](/guide/how-it-works) - Architecture and indexes
|
|
150
|
+
- [Formulas Guide](/guide/formulas) - How formulas work
|
|
151
|
+
- [Fontist Blog: Installing macOS-specific add-on fonts](https://www.fontist.org/blog/2022-02-11-macos-fonts)
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Windows Platform Guide
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Windows Platform Guide
|
|
6
|
+
|
|
7
|
+
Fontist provides comprehensive Windows platform support, allowing installation and management of fonts on Windows 7 and later.
|
|
8
|
+
|
|
9
|
+
## Windows Font Management
|
|
10
|
+
|
|
11
|
+
Windows font management differs from Unix systems in several key ways:
|
|
12
|
+
|
|
13
|
+
| Difference | Description |
|
|
14
|
+
|------------|-------------|
|
|
15
|
+
| Path separator | Uses backslash (`\`) instead of forward slash (`/`) |
|
|
16
|
+
| Font locations | Registry-based and directory-based locations |
|
|
17
|
+
| File locking | Stricter file locking during operations |
|
|
18
|
+
| Permissions | Case-insensitive but case-preserving filesystem |
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Windows Font Locations
|
|
23
|
+
|
|
24
|
+
Fontist supports three installation locations on Windows:
|
|
25
|
+
|
|
26
|
+
### System Fonts
|
|
27
|
+
|
|
28
|
+
| Property | Value |
|
|
29
|
+
|----------|-------|
|
|
30
|
+
| Location | `C:\Windows\Fonts` |
|
|
31
|
+
| Requires Admin | Yes |
|
|
32
|
+
| Available To | All users |
|
|
33
|
+
|
|
34
|
+
### User Fonts
|
|
35
|
+
|
|
36
|
+
| Property | Value |
|
|
37
|
+
|----------|-------|
|
|
38
|
+
| Location | `%LOCALAPPDATA%\Microsoft\Windows\Fonts` |
|
|
39
|
+
| Requires Admin | No |
|
|
40
|
+
| Available To | Current user only |
|
|
41
|
+
| Windows Version | Windows 10+ |
|
|
42
|
+
|
|
43
|
+
### Fontist Library
|
|
44
|
+
|
|
45
|
+
| Property | Value |
|
|
46
|
+
|----------|-------|
|
|
47
|
+
| Location | `%USERPROFILE%\.fontist\fonts` |
|
|
48
|
+
| Requires Admin | No |
|
|
49
|
+
| Available To | Current user only |
|
|
50
|
+
| Default | Yes |
|
|
51
|
+
|
|
52
|
+
Fontist creates a `fontist` subdirectory within user and system font directories to avoid cluttering the main font directory.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Installation Examples
|
|
57
|
+
|
|
58
|
+
### Install to Fontist Library (Default)
|
|
59
|
+
|
|
60
|
+
```powershell
|
|
61
|
+
# No administrator privileges required
|
|
62
|
+
fontist install "Roboto"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Install to User Fonts Directory
|
|
66
|
+
|
|
67
|
+
```powershell
|
|
68
|
+
# No administrator privileges required (Windows 10+)
|
|
69
|
+
fontist install "Roboto" --location=user
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Install to System Fonts Directory
|
|
73
|
+
|
|
74
|
+
```powershell
|
|
75
|
+
# Run as Administrator
|
|
76
|
+
fontist install "Roboto" --location=system
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Windows-Specific Considerations
|
|
82
|
+
|
|
83
|
+
### File Locking
|
|
84
|
+
|
|
85
|
+
Windows uses stricter file locking than Unix systems. Fontist handles this with automatic retry logic when encountering locked files during cleanup operations.
|
|
86
|
+
|
|
87
|
+
If you encounter file locking issues:
|
|
88
|
+
1. Close applications that might be using the font
|
|
89
|
+
2. Retry the operation
|
|
90
|
+
3. Use Task Manager to identify processes locking the file
|
|
91
|
+
|
|
92
|
+
### Path Handling
|
|
93
|
+
|
|
94
|
+
Fontist automatically handles Windows path separators and drive letters. Font paths are returned in Windows-native format:
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
C:\Users\user\.fontist\fonts\font.ttf
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Registry Integration
|
|
101
|
+
|
|
102
|
+
While Windows historically used registry-based font registration, modern Windows (10+) supports directory-based fonts. Fontist uses directory-based installation for maximum compatibility and ease of management.
|
|
103
|
+
|
|
104
|
+
### Administrator Privileges
|
|
105
|
+
|
|
106
|
+
| Operation | Admin Required |
|
|
107
|
+
|-----------|----------------|
|
|
108
|
+
| Install to `fontist` location | No |
|
|
109
|
+
| Install to `user` location | No |
|
|
110
|
+
| Install to `system` location | Yes |
|
|
111
|
+
| Uninstall from system fonts | Yes |
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Platform Compatibility
|
|
116
|
+
|
|
117
|
+
| Windows Version | Support Status | Notes |
|
|
118
|
+
|-----------------|----------------|-------|
|
|
119
|
+
| Windows 11 | ✅ Fully Supported | All features available |
|
|
120
|
+
| Windows 10 | ✅ Fully Supported | User font directory available |
|
|
121
|
+
| Windows 8/8.1 | ✅ Supported | System and fontist locations only |
|
|
122
|
+
| Windows 7 | ⚠️ Limited Support | System and fontist locations only |
|
|
123
|
+
|
|
124
|
+
::: warning Windows 7 Support
|
|
125
|
+
Extended support for Windows 7 ended January 14, 2020. Fontist is tested on Windows 10 and later. Earlier versions may work but are not actively tested.
|
|
126
|
+
:::
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Ruby Installation on Windows
|
|
131
|
+
|
|
132
|
+
### Prerequisites
|
|
133
|
+
|
|
134
|
+
1. **RubyInstaller with DevKit** - Required for native gem extensions
|
|
135
|
+
2. **MSYS2** - Required for building native extensions
|
|
136
|
+
3. **Git for Windows** - Required for `fontist update` and `fontist repo` commands
|
|
137
|
+
|
|
138
|
+
### Installation Steps
|
|
139
|
+
|
|
140
|
+
1. Download [RubyInstaller](https://rubyinstaller.org/downloads/) (select "Ruby+Devkit" version)
|
|
141
|
+
|
|
142
|
+
2. Run the installer and check "Add Ruby executables to your PATH"
|
|
143
|
+
|
|
144
|
+
3. After installation, run MSYS2 setup:
|
|
145
|
+
```powershell
|
|
146
|
+
ridk install
|
|
147
|
+
```
|
|
148
|
+
Select option 3 (MSYS2 and MINGW development toolchain) when prompted.
|
|
149
|
+
|
|
150
|
+
4. Install [Git for Windows](https://git-scm.com/download/win)
|
|
151
|
+
|
|
152
|
+
5. Install Fontist:
|
|
153
|
+
```powershell
|
|
154
|
+
gem install fontist
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Troubleshooting
|
|
160
|
+
|
|
161
|
+
### Native Extension Errors
|
|
162
|
+
|
|
163
|
+
If you see errors about failed compilations:
|
|
164
|
+
|
|
165
|
+
```powershell
|
|
166
|
+
# Ensure MSYS2 is properly installed
|
|
167
|
+
ridk install
|
|
168
|
+
|
|
169
|
+
# Reinstall the gem with verbose output
|
|
170
|
+
gem install fontist --verbose
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Permission Errors
|
|
174
|
+
|
|
175
|
+
If you get permission errors:
|
|
176
|
+
|
|
177
|
+
```powershell
|
|
178
|
+
# Option 1: Install to user directory
|
|
179
|
+
fontist install "Roboto" --location=user
|
|
180
|
+
|
|
181
|
+
# Option 2: Run as Administrator for system fonts
|
|
182
|
+
# Right-click PowerShell → "Run as administrator"
|
|
183
|
+
fontist install "Roboto" --location=system
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Path Too Long Errors
|
|
187
|
+
|
|
188
|
+
Windows has a 260 character path limit by default. If you encounter path issues:
|
|
189
|
+
|
|
190
|
+
1. Enable long paths in Windows (requires admin):
|
|
191
|
+
```powershell
|
|
192
|
+
# Run as Administrator
|
|
193
|
+
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" `
|
|
194
|
+
-Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
2. Or use a shorter installation path via environment variable:
|
|
198
|
+
```powershell
|
|
199
|
+
$env:FONTIST_PATH = "C:\f"
|
|
200
|
+
fontist install "Roboto"
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Environment Variables
|
|
206
|
+
|
|
207
|
+
| Variable | Description | Example |
|
|
208
|
+
|----------|-------------|---------|
|
|
209
|
+
| `FONTIST_PATH` | Base directory for Fontist data | `C:\fontist` |
|
|
210
|
+
| `FONTIST_INSTALL_LOCATION` | Default install location | `user` |
|
|
211
|
+
| `FONTIST_USER_FONTS_PATH` | Custom user fonts path | `C:\Users\me\Fonts` |
|
|
212
|
+
| `FONTIST_SYSTEM_FONTS_PATH` | Custom system fonts path | `C:\Windows\Fonts` |
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## See Also
|
|
217
|
+
|
|
218
|
+
- [Installation Guide](/guide/installation) - General installation instructions
|
|
219
|
+
- [Install Command](/cli/install) - CLI reference for install
|
|
220
|
+
- [How Fontist Works](/guide/how-it-works) - Architecture overview
|
|
@@ -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
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
|
-
|
|
7
|
-
text: "
|
|
8
|
-
tagline:
|
|
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:
|
|
11
|
+
text: Get Started
|
|
14
12
|
link: /guide/
|
|
15
13
|
- theme: alt
|
|
16
|
-
text:
|
|
17
|
-
link: /
|
|
14
|
+
text: CLI Reference
|
|
15
|
+
link: /cli/
|
|
18
16
|
- theme: alt
|
|
19
|
-
text:
|
|
20
|
-
link:
|
|
21
|
-
|
|
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
|
-
|
|
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"> </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"> </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
|
-
|
|
27
|
-
gem install fontist
|
|
28
|
-
```
|
|
39
|
+
## Quick Start
|
|
29
40
|
|
|
30
|
-
|
|
41
|
+
```bash
|
|
42
|
+
# Install a font by name
|
|
43
|
+
fontist install "Open Sans"
|
|
31
44
|
|
|
32
|
-
|
|
45
|
+
# Install from a manifest file
|
|
46
|
+
fontist manifest-install manifest.yml
|
|
33
47
|
|
|
34
|
-
|
|
35
|
-
fontist
|
|
36
|
-
fontist install "Open Sans"
|
|
37
|
-
fontist install "Consolas"
|
|
48
|
+
# Check font status
|
|
49
|
+
fontist status "Fira Code"
|
|
38
50
|
```
|
|
39
51
|
|
|
40
|
-
|
|
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
|
+
]
|