fontisan 0.2.14 → 0.2.16
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/.rubocop_todo.yml +79 -4
- data/docs/.gitignore +17 -0
- data/docs/.vitepress/config.ts +317 -0
- data/docs/.vitepress/theme/components/ApiMethod.vue +127 -0
- data/docs/.vitepress/theme/components/Badge.vue +51 -0
- data/docs/.vitepress/theme/components/FeatureComparison.vue +87 -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 +22 -0
- data/docs/.vitepress/theme/style.css +330 -0
- data/docs/api/conversion-options.md +141 -0
- data/docs/api/converters/curve-converter.md +34 -0
- data/docs/api/converters/hint-converter.md +34 -0
- data/docs/api/converters/outline-converter.md +27 -0
- data/docs/api/font-loader.md +111 -0
- data/docs/api/font-writer.md +103 -0
- data/docs/api/index.md +79 -0
- data/docs/api/models/glyph-accessor.md +43 -0
- data/docs/api/models/glyph.md +40 -0
- data/docs/api/models/table-analyzer.md +35 -0
- data/docs/api/sfnt-font.md +53 -0
- data/docs/api/type1-font.md +43 -0
- data/docs/api/validators/font-validator.md +31 -0
- data/docs/api/validators/helper.md +36 -0
- data/docs/api/validators/profile.md +39 -0
- data/docs/cli/convert.md +87 -0
- data/docs/cli/dump-table.md +110 -0
- data/docs/cli/export.md +176 -0
- data/docs/cli/features.md +124 -0
- data/docs/cli/glyphs.md +90 -0
- data/docs/cli/index.md +208 -0
- data/docs/cli/info.md +254 -0
- data/docs/cli/instance.md +122 -0
- data/docs/cli/ls.md +95 -0
- data/docs/cli/optical-size.md +94 -0
- data/docs/cli/pack.md +125 -0
- data/docs/cli/scripts.md +105 -0
- data/docs/cli/subset.md +39 -0
- data/docs/cli/tables.md +84 -0
- data/docs/cli/unicode.md +101 -0
- data/docs/cli/validate.md +48 -0
- data/docs/cli/variable.md +126 -0
- data/docs/cli/version.md +46 -0
- data/docs/guide/cli/convert.md +108 -0
- data/docs/guide/cli/export.md +138 -0
- data/docs/guide/cli/index.md +99 -0
- data/docs/guide/cli/info.md +144 -0
- data/docs/guide/cli/pack.md +155 -0
- data/docs/guide/cli/subset.md +118 -0
- data/docs/guide/cli/validate.md +139 -0
- data/docs/guide/color-fonts/bitmaps.md +177 -0
- data/docs/guide/color-fonts/colr-cpal.md +175 -0
- data/docs/guide/color-fonts/index.md +140 -0
- data/docs/guide/color-fonts/svg.md +154 -0
- data/docs/guide/color.md +51 -0
- data/docs/guide/comparisons/font-validator.md +222 -0
- data/docs/guide/comparisons/fonttools.md +200 -0
- data/docs/guide/comparisons/index.md +83 -0
- data/docs/guide/comparisons/lcdf-typetools.md +205 -0
- data/docs/guide/contributing.md +279 -0
- data/docs/guide/conversion/collections.md +251 -0
- data/docs/guide/conversion/curves.md +246 -0
- data/docs/guide/conversion/index.md +157 -0
- data/docs/guide/conversion/options.md +251 -0
- data/docs/guide/conversion/ttf-otf.md +184 -0
- data/docs/guide/conversion/type1.md +208 -0
- data/docs/guide/conversion/web.md +240 -0
- data/docs/guide/conversion.md +39 -0
- data/docs/guide/formats/collections.md +147 -0
- data/docs/guide/formats/dfont.md +99 -0
- data/docs/guide/formats/index.md +65 -0
- data/docs/guide/formats/otf.md +103 -0
- data/docs/guide/formats/svg.md +97 -0
- data/docs/guide/formats/ttf.md +105 -0
- data/docs/guide/formats/type1.md +118 -0
- data/docs/guide/formats/woff.md +115 -0
- data/docs/guide/hinting/autohint.md +141 -0
- data/docs/guide/hinting/conversion.md +161 -0
- data/docs/guide/hinting/index.md +86 -0
- data/docs/guide/hinting/postscript.md +149 -0
- data/docs/guide/hinting/truetype.md +135 -0
- data/docs/guide/hinting.md +44 -0
- data/docs/guide/index.md +152 -0
- data/docs/guide/installation.md +116 -0
- data/docs/guide/migrations/extract-ttc.md +549 -0
- data/docs/guide/migrations/font-validator.md +260 -0
- data/docs/guide/migrations/fonttools.md +208 -0
- data/docs/guide/migrations/index.md +64 -0
- data/docs/guide/migrations/otfinfo.md +197 -0
- data/docs/guide/quick-start.md +204 -0
- data/docs/guide/type1.md +58 -0
- data/docs/guide/universal-outline.md +151 -0
- data/docs/guide/validation/custom.md +195 -0
- data/docs/guide/validation/helpers.md +188 -0
- data/docs/guide/validation/index.md +132 -0
- data/docs/guide/validation/profiles.md +156 -0
- data/docs/guide/validation.md +47 -0
- data/docs/guide/variable-fonts/advanced.md +231 -0
- data/docs/guide/variable-fonts/axes.md +209 -0
- data/docs/guide/variable-fonts/conversion.md +197 -0
- data/docs/guide/variable-fonts/index.md +84 -0
- data/docs/guide/variable-fonts/instances.md +187 -0
- data/docs/guide/variable-fonts/named-instances.md +194 -0
- data/docs/guide/variable-fonts/static.md +168 -0
- data/docs/guide/variable.md +58 -0
- data/docs/guide/woff.md +59 -0
- data/docs/index.md +136 -0
- data/docs/lychee.toml +37 -0
- data/docs/package-lock.json +2560 -0
- data/docs/package.json +15 -0
- 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/fontisan.gemspec +1 -1
- data/lib/fontisan/commands/features_command.rb +0 -1
- data/lib/fontisan/commands/scripts_command.rb +0 -1
- data/lib/fontisan/loading_modes.rb +0 -2
- data/lib/fontisan/sfnt_font.rb +4 -3
- data/lib/fontisan/tables/glyf/compound_glyph.rb +0 -1
- data/lib/fontisan/variable/delta_applicator.rb +3 -3
- data/lib/fontisan/variation/optimizer.rb +0 -1
- data/lib/fontisan/version.rb +1 -1
- data/lib/fontisan.rb +3 -2
- metadata +122 -4
data/docs/cli/version.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: version
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# version
|
|
6
|
+
|
|
7
|
+
Display the Fontisan version information.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
fontisan version
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Description
|
|
16
|
+
|
|
17
|
+
Shows the currently installed version of Fontisan. This is useful for:
|
|
18
|
+
|
|
19
|
+
- Verifying installation
|
|
20
|
+
- Checking compatibility
|
|
21
|
+
- Reporting issues with version information
|
|
22
|
+
|
|
23
|
+
## Examples
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Show version
|
|
27
|
+
fontisan version
|
|
28
|
+
|
|
29
|
+
# Output:
|
|
30
|
+
# fontisan 0.1.0
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Programmatic Access
|
|
34
|
+
|
|
35
|
+
You can also get the version programmatically:
|
|
36
|
+
|
|
37
|
+
```ruby
|
|
38
|
+
require 'fontisan'
|
|
39
|
+
|
|
40
|
+
puts Fontisan::VERSION
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Related Commands
|
|
44
|
+
|
|
45
|
+
- [info](/cli/info) — Get font information
|
|
46
|
+
- [tables](/cli/tables) — List font tables
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: convert
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# convert
|
|
6
|
+
|
|
7
|
+
Convert between font formats.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
fontisan convert INPUT --to FORMAT [options]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Arguments
|
|
16
|
+
|
|
17
|
+
| Argument | Description |
|
|
18
|
+
|----------|-------------|
|
|
19
|
+
| `INPUT` | Input font file |
|
|
20
|
+
| `--to FORMAT` | Output format (ttf, otf, woff, woff2) |
|
|
21
|
+
| `--output PATH` | Output file path |
|
|
22
|
+
|
|
23
|
+
## Options
|
|
24
|
+
|
|
25
|
+
### Opening Options
|
|
26
|
+
|
|
27
|
+
| Option | Description |
|
|
28
|
+
|--------|-------------|
|
|
29
|
+
| `--decompose` | Decompose composite glyphs |
|
|
30
|
+
| `--convert-curves` | Convert quadratic ↔ cubic curves |
|
|
31
|
+
| `--scale-to-1000` | Scale to 1000 UPM |
|
|
32
|
+
| `--autohint` | Apply automatic hinting |
|
|
33
|
+
| `--generate-unicode` | Generate Unicode from glyph names |
|
|
34
|
+
| `--preserve-custom-tables` | Preserve non-standard tables |
|
|
35
|
+
|
|
36
|
+
### Generating Options
|
|
37
|
+
|
|
38
|
+
| Option | Description |
|
|
39
|
+
|--------|-------------|
|
|
40
|
+
| `--hinting-mode MODE` | preserve, auto, none, full |
|
|
41
|
+
| `--optimize-tables` | Enable table optimization |
|
|
42
|
+
| `--preserve-metadata` | Keep copyright/license info |
|
|
43
|
+
| `--strip-metadata` | Remove metadata |
|
|
44
|
+
| `--target-format FORMAT` | Collection target format |
|
|
45
|
+
|
|
46
|
+
### Presets
|
|
47
|
+
|
|
48
|
+
| Option | Description |
|
|
49
|
+
|--------|-------------|
|
|
50
|
+
| `--preset NAME` | Use named preset |
|
|
51
|
+
| `--show-options` | Show recommended options |
|
|
52
|
+
|
|
53
|
+
## Presets
|
|
54
|
+
|
|
55
|
+
| Preset | Description |
|
|
56
|
+
|--------|-------------|
|
|
57
|
+
| `type1_to_modern` | Type 1 → OpenType |
|
|
58
|
+
| `modern_to_type1` | OpenType → Type 1 |
|
|
59
|
+
| `web_optimized` | Any → WOFF2 |
|
|
60
|
+
| `archive_to_modern` | Collection → OTF |
|
|
61
|
+
|
|
62
|
+
## Examples
|
|
63
|
+
|
|
64
|
+
### Basic Conversion
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# TTF to OTF
|
|
68
|
+
fontisan convert input.ttf --to otf --output output.otf
|
|
69
|
+
|
|
70
|
+
# OTF to WOFF2
|
|
71
|
+
fontisan convert input.otf --to woff2 --output output.woff2
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### With Options
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# Convert with autohint
|
|
78
|
+
fontisan convert input.ttf --to otf --autohint --output output.otf
|
|
79
|
+
|
|
80
|
+
# Convert with curve conversion
|
|
81
|
+
fontisan convert input.ttf --to otf --convert-curves --output output.otf
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Using Presets
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# Type 1 to modern
|
|
88
|
+
fontisan convert font.pfb --to otf --preset type1_to_modern --output font.otf
|
|
89
|
+
|
|
90
|
+
# Web optimized
|
|
91
|
+
fontisan convert font.otf --to woff2 --preset web_optimized --output font.woff2
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Show Options
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
# See what options will be used
|
|
98
|
+
fontisan convert input.ttf --to otf --show-options
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Batch Conversion
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# Convert all TTF files
|
|
105
|
+
for f in *.ttf; do
|
|
106
|
+
fontisan convert "$f" --to woff2 --output "${f%.ttf}.woff2"
|
|
107
|
+
done
|
|
108
|
+
```
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: export
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# export
|
|
6
|
+
|
|
7
|
+
Export font data to various formats.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
fontisan export FONT [options]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Arguments
|
|
16
|
+
|
|
17
|
+
| Argument | Description |
|
|
18
|
+
|----------|-------------|
|
|
19
|
+
| `FONT` | Input font file |
|
|
20
|
+
|
|
21
|
+
## Options
|
|
22
|
+
|
|
23
|
+
| Option | Description |
|
|
24
|
+
|--------|-------------|
|
|
25
|
+
| `--format FORMAT` | Export format (ttx, svg, ufo) |
|
|
26
|
+
| `--output PATH` | Output file/directory |
|
|
27
|
+
| `--tables LIST` | Export specific tables |
|
|
28
|
+
|
|
29
|
+
## Export Formats
|
|
30
|
+
|
|
31
|
+
| Format | Description |
|
|
32
|
+
|--------|-------------|
|
|
33
|
+
| `ttx` | XML dump of font tables |
|
|
34
|
+
| `svg` | SVG font format |
|
|
35
|
+
| `ufo` | Unified Font Object |
|
|
36
|
+
|
|
37
|
+
## Examples
|
|
38
|
+
|
|
39
|
+
### Export to TTX
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# Export all tables
|
|
43
|
+
fontisan export font.ttf --format ttx --output font.ttx
|
|
44
|
+
|
|
45
|
+
# Export specific tables
|
|
46
|
+
fontisan export font.ttf --format ttx --tables head,name,cmap --output font-partial.ttx
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Export to SVG
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# Create SVG font
|
|
53
|
+
fontisan export font.ttf --format svg --output font.svg
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Export to UFO
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Create UFO package
|
|
60
|
+
fontisan export font.ttf --format ufo --output font.ufo
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## TTX Format
|
|
64
|
+
|
|
65
|
+
TTX is an XML representation of font tables:
|
|
66
|
+
|
|
67
|
+
```xml
|
|
68
|
+
<?xml version="1.0"?>
|
|
69
|
+
<ttFont>
|
|
70
|
+
<head>
|
|
71
|
+
<tableVersion value="1.0"/>
|
|
72
|
+
<fontRevision value="1.0"/>
|
|
73
|
+
<unitsPerEm value="1000"/>
|
|
74
|
+
...
|
|
75
|
+
</head>
|
|
76
|
+
<name>
|
|
77
|
+
<namerecord nameID="1">Example</namerecord>
|
|
78
|
+
...
|
|
79
|
+
</name>
|
|
80
|
+
</ttFont>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Export Specific Tables
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# Just head and name
|
|
87
|
+
fontisan export font.ttf --format ttx --tables head,name --output tables.ttx
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Compare Tables
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
# Export from two fonts
|
|
94
|
+
fontisan export font1.ttf --format ttx --tables name --output name1.ttx
|
|
95
|
+
fontisan export font2.ttf --format ttx --tables name --output name2.ttx
|
|
96
|
+
|
|
97
|
+
# Compare
|
|
98
|
+
diff name1.ttx name2.ttx
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## SVG Export
|
|
102
|
+
|
|
103
|
+
Creates an SVG font file:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
fontisan export font.ttf --format svg --output font.svg
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Result:
|
|
110
|
+
```xml
|
|
111
|
+
<svg xmlns="http://www.w3.org/2000/svg">
|
|
112
|
+
<font>
|
|
113
|
+
<font-face font-family="Example"/>
|
|
114
|
+
<glyph unicode="A" d="M0 0 L100 0..."/>
|
|
115
|
+
<glyph unicode="B" d="M0 0 L100 0..."/>
|
|
116
|
+
</font>
|
|
117
|
+
</svg>
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## UFO Export
|
|
121
|
+
|
|
122
|
+
Creates a UFO (Unified Font Object) package:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
fontisan export font.ttf --format ufo --output font.ufo
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Structure:
|
|
129
|
+
```
|
|
130
|
+
font.ufo/
|
|
131
|
+
├── fontinfo.plist
|
|
132
|
+
├── glyphs/
|
|
133
|
+
│ ├── A.glif
|
|
134
|
+
│ ├── B.glif
|
|
135
|
+
│ └── ...
|
|
136
|
+
├── glyphs.contents
|
|
137
|
+
└── metainfo.plist
|
|
138
|
+
```
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: CLI Overview
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# CLI Overview
|
|
6
|
+
|
|
7
|
+
Fontisan includes a comprehensive command-line interface.
|
|
8
|
+
|
|
9
|
+
## Available Commands
|
|
10
|
+
|
|
11
|
+
| Command | Description |
|
|
12
|
+
|---------|-------------|
|
|
13
|
+
| `convert` | Convert between font formats |
|
|
14
|
+
| `info` | Get font information |
|
|
15
|
+
| `validate` | Validate fonts |
|
|
16
|
+
| `subset` | Subset fonts |
|
|
17
|
+
| `pack` | Create font collections |
|
|
18
|
+
| `unpack` | Extract from collections |
|
|
19
|
+
| `export` | Export to TTX, SVG, etc. |
|
|
20
|
+
| `ls` | List fonts in collection |
|
|
21
|
+
| `instance` | Generate variable font instances |
|
|
22
|
+
|
|
23
|
+
## Global Options
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
fontisan [options] <command>
|
|
27
|
+
|
|
28
|
+
Options:
|
|
29
|
+
--format FORMAT Output format (text, yaml, json)
|
|
30
|
+
--verbose Verbose output
|
|
31
|
+
--quiet Suppress non-error output
|
|
32
|
+
--help Show help
|
|
33
|
+
--version Show version
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Getting Help
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# General help
|
|
40
|
+
fontisan --help
|
|
41
|
+
|
|
42
|
+
# Command help
|
|
43
|
+
fontisan convert --help
|
|
44
|
+
fontisan validate --help
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Output Formats
|
|
48
|
+
|
|
49
|
+
### Text (default)
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
fontisan info font.ttf
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### YAML
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
fontisan info font.ttf --format yaml
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### JSON
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
fontisan info font.ttf --format json
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Guides
|
|
68
|
+
|
|
69
|
+
- [convert](/guide/cli/convert) — Format conversion
|
|
70
|
+
- [info](/guide/cli/info) — Font information
|
|
71
|
+
- [validate](/guide/cli/validate) — Validation
|
|
72
|
+
- [subset](/guide/cli/subset) — Subsetting
|
|
73
|
+
- [pack](/guide/cli/pack) — Collections
|
|
74
|
+
|
|
75
|
+
## Examples
|
|
76
|
+
|
|
77
|
+
### Basic Conversion
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
fontisan convert input.ttf --to otf --output output.otf
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Validate for Web
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
fontisan validate font.ttf --profile web
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Extract Collection
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
fontisan unpack fonts.ttc --output-dir ./extracted
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Generate Instance
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
fontisan instance variable.ttf --wght 700 --output bold.ttf
|
|
99
|
+
```
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: info
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# info
|
|
6
|
+
|
|
7
|
+
Get font information.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
fontisan info FONT [options]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Arguments
|
|
16
|
+
|
|
17
|
+
| Argument | Description |
|
|
18
|
+
|----------|-------------|
|
|
19
|
+
| `FONT` | Font file to analyze |
|
|
20
|
+
|
|
21
|
+
## Options
|
|
22
|
+
|
|
23
|
+
| Option | Description |
|
|
24
|
+
|--------|-------------|
|
|
25
|
+
| `--format FORMAT` | Output format (text, yaml, json) |
|
|
26
|
+
| `--tables` | Show table information |
|
|
27
|
+
| `--glyphs` | Show glyph information |
|
|
28
|
+
| `--unicode` | Show Unicode coverage |
|
|
29
|
+
| `--features` | Show OpenType features |
|
|
30
|
+
| `--verbose` | Detailed output |
|
|
31
|
+
|
|
32
|
+
## Examples
|
|
33
|
+
|
|
34
|
+
### Basic Info
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
fontisan info font.ttf
|
|
38
|
+
|
|
39
|
+
# Font: font.ttf
|
|
40
|
+
# Format: TrueType
|
|
41
|
+
# Family: Example
|
|
42
|
+
# Style: Regular
|
|
43
|
+
# Version: 1.000
|
|
44
|
+
# Glyphs: 268
|
|
45
|
+
# Tables: 14
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Table Information
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
fontisan info font.ttf --tables
|
|
52
|
+
|
|
53
|
+
# Tables:
|
|
54
|
+
# head - Font header (54 bytes)
|
|
55
|
+
# hhea - Horizontal header (36 bytes)
|
|
56
|
+
# maxp - Maximum profile (32 bytes)
|
|
57
|
+
# name - Naming table (2456 bytes)
|
|
58
|
+
# cmap - Character mapping (1234 bytes)
|
|
59
|
+
# ...
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Unicode Coverage
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
fontisan info font.ttf --unicode
|
|
66
|
+
|
|
67
|
+
# Unicode Coverage:
|
|
68
|
+
# Basic Latin (U+0000-U+007F)
|
|
69
|
+
# Latin-1 Supplement (U+0080-U+00FF)
|
|
70
|
+
# Latin Extended-A (U+0100-U+017F)
|
|
71
|
+
# ...
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### OpenType Features
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
fontisan info font.ttf --features
|
|
78
|
+
|
|
79
|
+
# OpenType Features:
|
|
80
|
+
# GSUB:
|
|
81
|
+
# liga - Ligatures
|
|
82
|
+
# kern - Kerning
|
|
83
|
+
# GPOS:
|
|
84
|
+
# kern - Kerning
|
|
85
|
+
# mark - Mark positioning
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### YAML Output
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
fontisan info font.ttf --format yaml
|
|
92
|
+
|
|
93
|
+
# family: Example
|
|
94
|
+
# style: Regular
|
|
95
|
+
# version: 1.000
|
|
96
|
+
# glyphs: 268
|
|
97
|
+
# tables:
|
|
98
|
+
# head: 54
|
|
99
|
+
# hhea: 36
|
|
100
|
+
# ...
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### JSON Output
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
fontisan info font.ttf --format json
|
|
107
|
+
|
|
108
|
+
# {
|
|
109
|
+
# "family": "Example",
|
|
110
|
+
# "style": "Regular",
|
|
111
|
+
# "version": "1.000",
|
|
112
|
+
# "glyphs": 268
|
|
113
|
+
# }
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Variable Font Info
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
fontisan info variable.ttf
|
|
120
|
+
|
|
121
|
+
# Variable Font Axes: 2
|
|
122
|
+
# wght (Weight): 100 - 900, default: 400
|
|
123
|
+
# wdth (Width): 75 - 125, default: 100
|
|
124
|
+
#
|
|
125
|
+
# Named Instances: 6
|
|
126
|
+
# 0: Thin (wght=100)
|
|
127
|
+
# 1: Light (wght=300)
|
|
128
|
+
# 2: Regular (wght=400)
|
|
129
|
+
# ...
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Collection Info
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
fontisan info fonts.ttc
|
|
136
|
+
|
|
137
|
+
# Collection: fonts.ttc
|
|
138
|
+
# Format: TTC
|
|
139
|
+
# Fonts: 4
|
|
140
|
+
# Size: 256 KB
|
|
141
|
+
#
|
|
142
|
+
# Shared Tables: 4
|
|
143
|
+
# Space Saved: 45%
|
|
144
|
+
```
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: pack/unpack
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# pack/unpack
|
|
6
|
+
|
|
7
|
+
Create and extract font collections.
|
|
8
|
+
|
|
9
|
+
## pack
|
|
10
|
+
|
|
11
|
+
Create font collections.
|
|
12
|
+
|
|
13
|
+
### Usage
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
fontisan pack FONT ... --output COLLECTION [options]
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Arguments
|
|
20
|
+
|
|
21
|
+
| Argument | Description |
|
|
22
|
+
|----------|-------------|
|
|
23
|
+
| `FONT ...` | Input font files |
|
|
24
|
+
| `--output PATH` | Output collection |
|
|
25
|
+
|
|
26
|
+
### Options
|
|
27
|
+
|
|
28
|
+
| Option | Description |
|
|
29
|
+
|--------|-------------|
|
|
30
|
+
| `--deduplicate` | Deduplicate tables |
|
|
31
|
+
| `--format FORMAT` | Collection format (ttc, otc, dfont) |
|
|
32
|
+
|
|
33
|
+
### Examples
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# Create TTC
|
|
37
|
+
fontisan pack regular.ttf bold.ttf italic.ttf --output family.ttc
|
|
38
|
+
|
|
39
|
+
# Create OTC
|
|
40
|
+
fontisan pack regular.otf bold.otf --output family.otc
|
|
41
|
+
|
|
42
|
+
# With deduplication
|
|
43
|
+
fontisan pack *.ttf --output family.ttc --deduplicate
|
|
44
|
+
|
|
45
|
+
# Create dfont
|
|
46
|
+
fontisan pack regular.ttf bold.ttf --output family.dfont
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## unpack
|
|
50
|
+
|
|
51
|
+
Extract fonts from collections.
|
|
52
|
+
|
|
53
|
+
### Usage
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
fontisan unpack COLLECTION [options]
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Arguments
|
|
60
|
+
|
|
61
|
+
| Argument | Description |
|
|
62
|
+
|----------|-------------|
|
|
63
|
+
| `COLLECTION` | Collection file |
|
|
64
|
+
|
|
65
|
+
### Options
|
|
66
|
+
|
|
67
|
+
| Option | Description |
|
|
68
|
+
|--------|-------------|
|
|
69
|
+
| `--output-dir DIR` | Output directory |
|
|
70
|
+
| `--index N` | Extract specific font |
|
|
71
|
+
| `--output PATH` | Output file (with --index) |
|
|
72
|
+
| `--format FORMAT` | Convert to format |
|
|
73
|
+
|
|
74
|
+
### Examples
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# Extract all to directory
|
|
78
|
+
fontisan unpack family.ttc --output-dir ./extracted
|
|
79
|
+
|
|
80
|
+
# Extract specific font
|
|
81
|
+
fontisan unpack family.ttc --index 0 --output regular.ttf
|
|
82
|
+
|
|
83
|
+
# Extract with conversion
|
|
84
|
+
fontisan unpack family.ttc --output-dir ./otf --format otf
|
|
85
|
+
|
|
86
|
+
# Extract from dfont
|
|
87
|
+
fontisan unpack font.dfont --output-dir ./fonts
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## ls
|
|
91
|
+
|
|
92
|
+
List fonts in collections.
|
|
93
|
+
|
|
94
|
+
### Usage
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
fontisan ls COLLECTION
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Examples
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
fontisan ls family.ttc
|
|
104
|
+
|
|
105
|
+
# Collection: family.ttc
|
|
106
|
+
# Fonts: 4
|
|
107
|
+
#
|
|
108
|
+
# 0. Family Regular
|
|
109
|
+
# PostScript: Family-Regular
|
|
110
|
+
# Format: TrueType
|
|
111
|
+
# Glyphs: 268, Tables: 14
|
|
112
|
+
#
|
|
113
|
+
# 1. Family Bold
|
|
114
|
+
# PostScript: Family-Bold
|
|
115
|
+
# Format: TrueType
|
|
116
|
+
# Glyphs: 268, Tables: 14
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## Workflow Examples
|
|
120
|
+
|
|
121
|
+
### Extract, Modify, Repack
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
# Extract
|
|
125
|
+
fontisan unpack family.ttc --output-dir ./temp
|
|
126
|
+
|
|
127
|
+
# Modify fonts...
|
|
128
|
+
|
|
129
|
+
# Repack
|
|
130
|
+
fontisan pack temp/*.ttf --output family-new.ttc --deduplicate
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Convert Collection Format
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
# TTC to OTC
|
|
137
|
+
fontisan unpack family.ttc --output-dir ./temp --format otf
|
|
138
|
+
fontisan pack temp/*.otf --output family.otc
|
|
139
|
+
|
|
140
|
+
# Or directly
|
|
141
|
+
fontisan convert family.ttc --to otc --output family.otc
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Analyze Collection
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# List contents
|
|
148
|
+
fontisan ls family.ttc
|
|
149
|
+
|
|
150
|
+
# Get info
|
|
151
|
+
fontisan info family.ttc
|
|
152
|
+
|
|
153
|
+
# Validate all
|
|
154
|
+
fontisan validate family.ttc
|
|
155
|
+
```
|