fontist 1.13.1 → 1.14.1
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/metanorma.yml +3 -1
- data/README.adoc +245 -200
- data/fontist.gemspec +1 -0
- data/lib/fontist/cli/class_options.rb +14 -0
- data/lib/fontist/cli.rb +33 -19
- data/lib/fontist/errors.rb +22 -0
- data/lib/fontist/font.rb +42 -7
- data/lib/fontist/fontconfig.rb +87 -0
- data/lib/fontist/fontconfig_cli.rb +29 -0
- data/lib/fontist/formula.rb +9 -2
- data/lib/fontist/helpers.rb +21 -0
- data/lib/fontist/import/create_formula.rb +22 -2
- data/lib/fontist/import/files/collection_file.rb +7 -3
- data/lib/fontist/import/formula_builder.rb +23 -7
- data/lib/fontist/import/helpers/system_helper.rb +1 -9
- data/lib/fontist/import/macos/macos_license.txt +596 -0
- data/lib/fontist/import/macos.rb +25 -109
- data/lib/fontist/import/recursive_extraction.rb +11 -1
- data/lib/fontist/import/text_helper.rb +1 -1
- data/lib/fontist/import_cli.rb +20 -10
- data/lib/fontist/repo_cli.rb +6 -0
- data/lib/fontist/utils/cache.rb +11 -2
- data/lib/fontist/utils/system.rb +8 -0
- data/lib/fontist/utils/ui.rb +33 -4
- data/lib/fontist/utils.rb +0 -3
- data/lib/fontist/version.rb +1 -1
- data/lib/fontist.rb +2 -6
- metadata +20 -6
- data/lib/fontist/google_cli.rb +0 -29
- data/lib/fontist/utils/dsl/collection_font.rb +0 -36
- data/lib/fontist/utils/dsl/font.rb +0 -38
- data/lib/fontist/utils/dsl.rb +0 -85
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc5e7576ced5478fb9dc9752a5aa7f514491f112d5bb66b12f86f82b3d8a2f99
|
4
|
+
data.tar.gz: 123b39db27bb75fcbd120caae26adb60a7f9f39e9eabd06613ee50c98adde004
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '08091fefee390b3b349d6f7ccd7ac7bb921274c778f91452e05d19f56eac0399604db310aba1ea59fcfa7eafb1c1945aaa6d5454c1141850a7931fa6c44fd9b2'
|
7
|
+
data.tar.gz: d086b630b7d5e32435215d2498b023a3de3238f69c143436e09d0112860c14112167e9dcaa11e8fc1870affb5b63a53b46b9d5a236d00394ec7eeeb6b587e8af
|
@@ -13,7 +13,7 @@ jobs:
|
|
13
13
|
strategy:
|
14
14
|
fail-fast: false
|
15
15
|
matrix:
|
16
|
-
ruby: [ '2.
|
16
|
+
ruby: [ '2.6', '2.7', '3.0' ]
|
17
17
|
os: [ ubuntu-latest, windows-latest, macos-latest ]
|
18
18
|
experimental: [ true ]
|
19
19
|
steps:
|
@@ -32,4 +32,6 @@ jobs:
|
|
32
32
|
ruby-version: ${{ matrix.ruby }}
|
33
33
|
bundler-cache: true
|
34
34
|
|
35
|
+
- uses: metanorma/metanorma-build-scripts/inkscape-setup-action@main
|
36
|
+
|
35
37
|
- run: bundle exec rake
|
data/README.adoc
CHANGED
@@ -51,71 +51,70 @@ has the following requirements:
|
|
51
51
|
|
52
52
|
These dependencies are generally present on all systems.
|
53
53
|
|
54
|
-
=== Upgrading Fontist
|
55
|
-
|
56
|
-
==== To v1.10+
|
57
|
-
|
58
|
-
Fontist versions beyond v1.10 utilize a new formula format.
|
59
|
-
After the upgrade, please run `fontist update` to fetch the latest formulas.
|
60
|
-
|
61
|
-
Starting from v1.10, Fontist uses the "`default family`" instead of the "`preferred family`"
|
62
|
-
when grouping styles.
|
63
|
-
|
64
|
-
For example, a request for the "`Lato`" font prior to v1.10 will return all
|
65
|
-
styles: "`Black`", "`Black Italic`", "`Bold`", and 15 other styles.
|
66
|
-
|
67
|
-
From v1.10 onwards, Fontist will return _only_ the 4 default styles:
|
68
|
-
"`Regular`", "`Italic`", "`Bold`" and "`Bold Italic`".
|
69
|
-
|
70
|
-
In order to fetch other styles, you have to specify the exact font
|
71
|
-
"`subfamily`", such as "`Lato Black`", or "`Lato Heavy`", or use
|
72
|
-
the `--preferred-family` option with CLI and `Fontist.preferred_family = true`
|
73
|
-
with the Ruby library.
|
74
|
-
|
75
|
-
NOTE: Prior to v1.10 there was a bug with the "`Courier`" font formula, which
|
76
|
-
allowed the font to be installed when requesting the font name "`Courier`", but
|
77
|
-
its font location was only obtainable using the full "`Courier New`" font name.
|
78
|
-
From v1.10 onwards the behavior has been made consistent -- only the proper
|
79
|
-
"`Courier New`" name should be used.
|
80
54
|
|
55
|
+
== Usage of the Fontist command-line interface
|
81
56
|
|
82
|
-
|
83
|
-
|
84
|
-
=== Fontist command-line interface
|
57
|
+
=== The `fontist` command
|
85
58
|
|
86
59
|
These commands makes possible to operate with fonts via command line.
|
87
60
|
|
88
61
|
The CLI properly supports exit status, so in a case of error it returns a status
|
89
|
-
code higher or equal than 1
|
62
|
+
code higher or equal than `1`.
|
63
|
+
|
64
|
+
Searches are case-insensitive for ease of use.
|
90
65
|
|
91
|
-
All
|
66
|
+
All commands support the following global options:
|
92
67
|
|
93
|
-
|
68
|
+
`--preferred-family`:: Search using the "`preferred family`" name of a font.
|
69
|
+
(instead of the "`default family`" name, the default prior to Fontist v1.10.)
|
94
70
|
|
95
|
-
|
71
|
+
NOTE: See <<preferred-family-change>> for the differences between
|
72
|
+
"`preferred family`" and "`default family`".
|
96
73
|
|
97
|
-
* `--preferred-family` Use the preferred family names when searching for fonts. This format was used prior to v1.10.
|
98
74
|
|
99
|
-
=== Install fonts
|
75
|
+
=== Install fonts: `fontist install`
|
100
76
|
|
101
77
|
Fontist checks whether this font is already installed, and if not, then installs
|
102
78
|
the font and returns its installed paths.
|
103
79
|
|
104
|
-
The font name is the only argument to be supplied
|
80
|
+
The font name is the only argument to be supplied.
|
105
81
|
|
106
82
|
[source,sh]
|
107
83
|
----
|
108
84
|
$ fontist install "segoe ui"
|
109
85
|
These fonts are found or installed:
|
110
|
-
/Users/user/.fontist/fonts/SEGOEUI.TTF
|
111
|
-
/Users/user/.fontist/fonts/SEGOEUIB.TTF
|
112
|
-
/Users/user/.fontist/fonts/SEGOEUII.TTF
|
113
|
-
/Users/user/.fontist/fonts/SEGOEUIZ.TTF
|
86
|
+
- /Users/user/.fontist/fonts/SEGOEUI.TTF
|
87
|
+
- /Users/user/.fontist/fonts/SEGOEUIB.TTF
|
88
|
+
- /Users/user/.fontist/fonts/SEGOEUII.TTF
|
89
|
+
- /Users/user/.fontist/fonts/SEGOEUIZ.TTF
|
114
90
|
----
|
115
91
|
|
116
|
-
|
92
|
+
By default, all matching styles (according to the font's "`default family`" name)
|
93
|
+
are installed.
|
117
94
|
|
118
|
-
NOTE:
|
95
|
+
NOTE: Prior to v1.10, the font's "`preferred family`" name is used to match
|
96
|
+
styles for search. See <<preferred-family-change>> for details of that change.
|
97
|
+
|
98
|
+
To install all fonts specified in a Fontist formula, use the `-F, --formula`
|
99
|
+
option.
|
100
|
+
|
101
|
+
[source,sh]
|
102
|
+
----
|
103
|
+
$ fontist install --formula 'courier_prime'
|
104
|
+
Downloading font ...
|
105
|
+
Installing font "courier_prime".
|
106
|
+
Fonts installed at:
|
107
|
+
- /Users/user/.fontist/fonts/Courier Prime Bold Italic.ttf
|
108
|
+
- /Users/user/.fontist/fonts/Courier Prime Bold.ttf
|
109
|
+
- /Users/user/.fontist/fonts/Courier Prime Italic.ttf
|
110
|
+
- /Users/user/.fontist/fonts/Courier Prime.ttf
|
111
|
+
----
|
112
|
+
|
113
|
+
Here, `courier_prime` is the filename of the formula located at the public
|
114
|
+
Fontist Formula repository
|
115
|
+
(https://github.com/fontist/formulas/blob/v3/Formulas/courier_prime.yml[`courier_prime.yml`]).
|
116
|
+
|
117
|
+
NOTE: Specifying the formula's name or the font's filename is not supported.
|
119
118
|
|
120
119
|
If there are several formulas with a requested font, then `fontist` searches
|
121
120
|
for the newest version of the font among formulas with size below a limit
|
@@ -126,17 +125,23 @@ available formulas would be installed.
|
|
126
125
|
|
127
126
|
Supported options:
|
128
127
|
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
128
|
+
`-f, [--force]`:: Install even if already installed in system
|
129
|
+
`-F, [--formula]`:: Install whole formula instead of a font
|
130
|
+
`-a, [--accept-all-licenses]`:: Accept all license agreements
|
131
|
+
`-h, [--hide-licenses]`:: Hide license texts
|
132
|
+
`-p, [--no-progress]`:: Hide download progress
|
133
|
+
`-V, [--version=VERSION]`:: Install particular version of a font
|
134
|
+
`-s, [--smallest]`:: Install the smallest font by file size if several
|
135
|
+
`-n, [--newest]`:: Install the newest version of a font if several
|
136
|
+
`-S, [--size-limit=N]`:: Specify upper limit for file size of a formula to be installed
|
137
137
|
(default is 300 MB)
|
138
|
+
`-u, [--update-fontconfig]`:: Update Fontconfig
|
139
|
+
|
140
|
+
|
141
|
+
NOTE: The `install` command is similar to the `Font.install` library call.
|
138
142
|
|
139
|
-
|
143
|
+
|
144
|
+
=== Uninstall fonts: `fontist uninstall`
|
140
145
|
|
141
146
|
Uninstalls any font supported by Fontist.
|
142
147
|
|
@@ -153,22 +158,21 @@ These fonts are removed:
|
|
153
158
|
/Users/user/.fontist/fonts/SEGOEUI.TTF
|
154
159
|
----
|
155
160
|
|
156
|
-
=== Status
|
161
|
+
=== Status: `fontist status`
|
157
162
|
|
158
|
-
Prints installed font paths
|
163
|
+
Prints installed font paths with a corresponding formula.
|
159
164
|
|
160
165
|
[source,sh]
|
161
166
|
----
|
162
167
|
$ fontist status "segoe ui"
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
Bold Italic (/Users/user/.fontist/fonts/SEGOEUIZ.TTF)
|
168
|
+
Fonts found at:
|
169
|
+
- /Users/user/.fontist/fonts/SEGOEUII.TTF (from segoe_ui formula)
|
170
|
+
- /Users/user/.fontist/fonts/SEGOEUIZ.TTF (from segoe_ui formula)
|
171
|
+
- /Users/user/.fontist/fonts/SEGOEUIB.TTF (from segoe_ui formula)
|
172
|
+
- /Users/user/.fontist/fonts/SEGOEUI.TTF (from segoe_ui formula)
|
169
173
|
----
|
170
174
|
|
171
|
-
=== List
|
175
|
+
=== List: `fontist list`
|
172
176
|
|
173
177
|
Lists installation status of fonts supported by Fontist.
|
174
178
|
|
@@ -192,7 +196,7 @@ google/roboto_mono
|
|
192
196
|
Italic (uninstalled)
|
193
197
|
----
|
194
198
|
|
195
|
-
=== List installed font paths
|
199
|
+
=== List installed font paths: `fontist manifest-locations`
|
196
200
|
|
197
201
|
Returns locations of fonts specified in a YAML file as an input.
|
198
202
|
|
@@ -237,13 +241,23 @@ Segoe UI:
|
|
237
241
|
- "/Users/user/.fontist/fonts/SEGOEUIB.TTF"
|
238
242
|
Roboto Mono:
|
239
243
|
Regular:
|
240
|
-
full_name:
|
241
|
-
paths:
|
244
|
+
full_name: Roboto Mono Regular
|
245
|
+
paths:
|
246
|
+
- "/Users/user/.fontist/fonts/RobotoMono-VariableFont_wght.ttf"
|
242
247
|
----
|
243
248
|
|
244
|
-
|
249
|
+
If one or more of requested fonts are missing, the "3" error code would be
|
250
|
+
returned, and a message printed:
|
245
251
|
|
246
|
-
|
252
|
+
[source,sh]
|
253
|
+
----
|
254
|
+
$ fontist manifest-locations manifest.yml
|
255
|
+
'Roboto Mono' 'Regular' font is missing, please run `fontist install 'Roboto Mono'` to download the font.
|
256
|
+
$ echo $?
|
257
|
+
3
|
258
|
+
----
|
259
|
+
|
260
|
+
=== Install fonts from manifest: `fontist manifest-install`
|
247
261
|
|
248
262
|
Install fonts from a YAML Fontist manifest:
|
249
263
|
|
@@ -273,7 +287,31 @@ Roboto Mono:
|
|
273
287
|
- "/Users/user/.fontist/fonts/RobotoMono-VariableFont_wght.ttf"
|
274
288
|
----
|
275
289
|
|
276
|
-
===
|
290
|
+
=== Work with Fontconfig: `fontist fontconfig`
|
291
|
+
|
292
|
+
Fontconfig is a software designed to provide fonts to other programs. It is
|
293
|
+
typically used on Linux, but also available on macOS and Windows. Fontconfig is
|
294
|
+
used by LibreOffice, GIMP, and many other programs.
|
295
|
+
|
296
|
+
It order to find fontist fonts, Fontconfig should be updated to include fontist
|
297
|
+
paths. It can be done with the `--update-fontconfig` option of the `install`
|
298
|
+
command, or by calling a special one:
|
299
|
+
|
300
|
+
[source,sh]
|
301
|
+
----
|
302
|
+
$ fontist fontconfig update
|
303
|
+
----
|
304
|
+
|
305
|
+
It would create a config in `~/.config/fontconfig/conf.d/10-fontist.conf`.
|
306
|
+
|
307
|
+
To remove it, please use:
|
308
|
+
|
309
|
+
[source,sh]
|
310
|
+
----
|
311
|
+
$ fontist fontconfig remove
|
312
|
+
----
|
313
|
+
|
314
|
+
=== Help: `fontist help`
|
277
315
|
|
278
316
|
List of all commands could be seen by:
|
279
317
|
|
@@ -371,7 +409,7 @@ Fontist::Formula.find("Calibri")
|
|
371
409
|
----
|
372
410
|
|
373
411
|
This method will search and return a Fontist formula for the provided keyword
|
374
|
-
which allows for further processing, such as
|
412
|
+
which allows for further processing, such as license checks or proceeding with
|
375
413
|
installation of the font in your system.
|
376
414
|
|
377
415
|
==== List font styles supported by a formula
|
@@ -516,7 +554,36 @@ Fontist::Manifest::Locations.from_file("manifest.yml")
|
|
516
554
|
Fontist::Manifest::Install.from_file("manifest.yml", confirmation: "yes")
|
517
555
|
----
|
518
556
|
|
519
|
-
|
557
|
+
=== `Fontist::Fontconfig`
|
558
|
+
|
559
|
+
Fontist supports work with Fontconfig via the Ruby interface:
|
560
|
+
|
561
|
+
[source,ruby]
|
562
|
+
----
|
563
|
+
Fontist::Fontconfig.update # let detect fontist fonts
|
564
|
+
Fontist::Fontconfig.remove # disable detection
|
565
|
+
Fontist::Fontconfig.remove(force: true) # do not fail if no config exists
|
566
|
+
----
|
567
|
+
|
568
|
+
== Installing macOS-specific add-on fonts
|
569
|
+
|
570
|
+
The purpose of Fontist allowing macOS-specific add-on fonts is to allow CI jobs
|
571
|
+
on macOS environments to use these specially licensed fonts that are not
|
572
|
+
available on other platforms.
|
573
|
+
|
574
|
+
The "Canela" font is a commercial font that comes free with macOS.
|
575
|
+
|
576
|
+
Run this command to install Canela on macOS.
|
577
|
+
|
578
|
+
[source,sh]
|
579
|
+
----
|
580
|
+
$ fontist install Canela
|
581
|
+
----
|
582
|
+
|
583
|
+
WARNING: Fontist does not allow installing macOS-specific fonts on non-macOS
|
584
|
+
platforms due to font licensing of those fonts.
|
585
|
+
|
586
|
+
== Using Fontist with proxy servers
|
520
587
|
|
521
588
|
Fontist uses Git internally for fetching formulas and fonts.
|
522
589
|
|
@@ -575,38 +642,124 @@ https://github.com/evantoli[evantoli]).
|
|
575
642
|
|
576
643
|
== Authoring Fontist formulas
|
577
644
|
|
578
|
-
===
|
645
|
+
=== Private Fontist formulas and font repositories
|
579
646
|
|
580
|
-
|
581
|
-
|
647
|
+
Fontist supports installing private fonts via private Fontist repositories.
|
648
|
+
|
649
|
+
A Fontist repository is a Git repo which contains YAML Formula files.
|
650
|
+
Formulas can be created manually
|
651
|
+
(see https://github.com/fontist/formulas/tree/master/Formulas[examples]),
|
652
|
+
or <<create-formula,auto-generated from an archive>>.
|
653
|
+
|
654
|
+
A repository can be either a HTTPS or SSH Git repo. In case of SSH, a
|
655
|
+
corresponding SSH key should be setup with `ssh-agent` in order to access this
|
656
|
+
private repository.
|
657
|
+
|
658
|
+
The `fontist repo setup` command fetches a repository's formulas, and saves the
|
659
|
+
repository's name and URL for later use.
|
660
|
+
|
661
|
+
Internally, all repositories are stored at
|
662
|
+
`~/.fontist/formulas/Formulas/private`.
|
582
663
|
|
583
664
|
[source,sh]
|
584
665
|
----
|
585
|
-
fontist
|
586
|
-
|
666
|
+
fontist repo setup NAME URL
|
667
|
+
----
|
668
|
+
|
669
|
+
E.g.
|
670
|
+
|
671
|
+
[source,sh]
|
672
|
+
----
|
673
|
+
fontist repo setup acme https://example.com/acme/formulas.git
|
674
|
+
# or
|
675
|
+
fontist repo setup acme git@example.com:acme/formulas.git
|
587
676
|
----
|
588
677
|
|
589
|
-
|
590
|
-
main repo for backward compatibility with Fontist versinos prior to 1.9.x.
|
678
|
+
Then you can just install fonts from this repo:
|
591
679
|
|
592
|
-
|
593
|
-
|
680
|
+
[source,sh]
|
681
|
+
----
|
682
|
+
fontist install "private font"
|
683
|
+
----
|
684
|
+
|
685
|
+
If the private Fontist formula repository is updated, you can fetch the updates
|
686
|
+
with the `repo update` command:
|
594
687
|
|
595
688
|
[source,sh]
|
596
689
|
----
|
597
|
-
fontist
|
690
|
+
fontist repo update acme
|
598
691
|
----
|
599
692
|
|
600
|
-
|
601
|
-
|
693
|
+
If there is a need to avoid using private formulas, the repo can be removed
|
694
|
+
with:
|
695
|
+
|
696
|
+
[source,sh]
|
697
|
+
----
|
698
|
+
fontist repo remove acme
|
699
|
+
----
|
700
|
+
|
701
|
+
[[create-formula]]
|
702
|
+
=== Auto-generate a Fontist formula from a font archive
|
703
|
+
|
704
|
+
A formula could be generated from a fonts archive. Just specify a URL to the
|
705
|
+
archive:
|
602
706
|
|
603
707
|
[source,sh]
|
604
708
|
----
|
605
|
-
|
606
|
-
|
607
|
-
|
709
|
+
fontist create-formula https://www.latofonts.com/download/lato2ofl-zip/
|
710
|
+
cp lato.yml ~/.fontist/formulas/Formulas/
|
711
|
+
----
|
712
|
+
|
713
|
+
=== Authentication for private formulas or private formula repositories
|
714
|
+
|
715
|
+
Authorization of private archives in private formulas can be implemented with
|
716
|
+
headers.
|
717
|
+
|
718
|
+
Here is an example which works with Github releases:
|
719
|
+
|
720
|
+
[source,yaml]
|
721
|
+
----
|
722
|
+
resources:
|
723
|
+
fonts.zip:
|
724
|
+
urls:
|
725
|
+
- url: https://example.com/repos/acme/formulas/releases/assets/38777461
|
726
|
+
headers:
|
727
|
+
Accept: application/octet-stream
|
728
|
+
Authorization: token ghp_1234567890abcdefghi
|
608
729
|
----
|
609
730
|
|
731
|
+
A token can be obtained on the
|
732
|
+
https://github.com/settings/tokens[GitHub Settings > Tokens page].
|
733
|
+
This token should have at least the `repo` scope for access to these assets.
|
734
|
+
|
735
|
+
|
736
|
+
=== Upgrading Fontist
|
737
|
+
|
738
|
+
[[preferred-family-change]]
|
739
|
+
==== To v1.10+
|
740
|
+
|
741
|
+
Fontist versions beyond v1.10 utilize a new formula format.
|
742
|
+
After the upgrade, please run `fontist update` to fetch the latest formulas.
|
743
|
+
|
744
|
+
Starting from v1.10, Fontist uses the "`default family`" instead of the
|
745
|
+
"`preferred family`" when grouping styles.
|
746
|
+
|
747
|
+
For example, a request for the "`Lato`" font prior to v1.10 will return all
|
748
|
+
styles: "`Black`", "`Black Italic`", "`Bold`", and 15 other styles.
|
749
|
+
|
750
|
+
From v1.10 onwards, Fontist will return _only_ the 4 default styles:
|
751
|
+
"`Regular`", "`Italic`", "`Bold`" and "`Bold Italic`".
|
752
|
+
|
753
|
+
In order to fetch other styles, you have to specify the exact font
|
754
|
+
"`subfamily`", such as "`Lato Black`", or "`Lato Heavy`", or use
|
755
|
+
the `--preferred-family` option with CLI and `Fontist.preferred_family = true`
|
756
|
+
with the Ruby library.
|
757
|
+
|
758
|
+
NOTE: Prior to v1.10 there was a bug with the "`Courier`" font formula, which
|
759
|
+
allowed the font to be installed when requesting the font name "`Courier`", but
|
760
|
+
its font location was only obtainable using the full "`Courier New`" font name.
|
761
|
+
From v1.10 onwards the behavior has been made consistent -- only the proper
|
762
|
+
"`Courier New`" name should be used.
|
610
763
|
|
611
764
|
|
612
765
|
|
@@ -619,29 +772,13 @@ WARNING: This section is only for Fontist maintainers.
|
|
619
772
|
https://fonts.google.com[Google Fonts] provides probably the largest collection
|
620
773
|
of widely-used, freely and openly licensed fonts.
|
621
774
|
|
622
|
-
Fontist's https://github.com/
|
775
|
+
Fontist's https://github.com/fontist/formulas[formula library] includes support
|
623
776
|
for all openly-licensed fonts provided through Google Fonts, and maintains
|
624
777
|
Fontist formulas for all such fonts.
|
625
778
|
|
626
|
-
A GHA
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
[source,sh]
|
631
|
-
----
|
632
|
-
bin/fontist google import
|
633
|
-
----
|
634
|
-
|
635
|
-
The script would update formulas which should be committed to a separate
|
636
|
-
repository https://github.com/fontist/formulas[formulas]:
|
637
|
-
|
638
|
-
[source,sh]
|
639
|
-
----
|
640
|
-
cd ~/.fontist/versions/{last_version}/formulas
|
641
|
-
git add Formulas/google
|
642
|
-
git commit -m "Google Fonts update"
|
643
|
-
git push
|
644
|
-
----
|
779
|
+
https://github.com/fontist/formulas/blob/v3/.github/workflows/google.yml[A GHA
|
780
|
+
workflow] checks for updated fonts on Google Fonts daily. In case an update is
|
781
|
+
found, it's added to the repo by the workflow.
|
645
782
|
|
646
783
|
=== Dynamically importing formulas from SIL
|
647
784
|
|
@@ -658,7 +795,7 @@ They can be updated with:
|
|
658
795
|
|
659
796
|
[source,sh]
|
660
797
|
----
|
661
|
-
fontist import
|
798
|
+
fontist import sil
|
662
799
|
cd ~/.fontist/versions/{last_version}/formulas
|
663
800
|
git add Formulas/sil
|
664
801
|
git commit -m "SIL fonts update"
|
@@ -668,35 +805,19 @@ git push
|
|
668
805
|
=== Dynamically importing formulas from macOS
|
669
806
|
|
670
807
|
macOS provides https://support.apple.com/en-om/HT211240#download[fonts] which
|
671
|
-
can be manually downloaded with
|
672
|
-
fontist prints information on how to install it.
|
808
|
+
can be manually downloaded with `Font Book.app`.
|
673
809
|
|
674
|
-
|
675
|
-
for each version there is a formula containing all supported fonts.
|
676
|
-
|
677
|
-
A new formula can be generated with:
|
810
|
+
To update macOS formulas:
|
678
811
|
|
679
812
|
[source,sh]
|
680
813
|
----
|
681
|
-
fontist import macos
|
814
|
+
fontist import macos
|
682
815
|
cd ~/.fontist/versions/{last_version}/formulas
|
683
816
|
git add Formulas/macos
|
684
|
-
git commit -m "
|
817
|
+
git commit -m "Update macOS formulas"
|
685
818
|
git push
|
686
819
|
----
|
687
820
|
|
688
|
-
Here `--fonts-link` is a link to a page containing a list of available fonts
|
689
|
-
in the Font Book app.
|
690
|
-
|
691
|
-
If the import is run on a different version of macOS, then a proper version
|
692
|
-
should be set in the `platforms` attribute of the generated formula:
|
693
|
-
|
694
|
-
[source,yaml]
|
695
|
-
----
|
696
|
-
platforms:
|
697
|
-
- macos-20
|
698
|
-
----
|
699
|
-
|
700
821
|
|
701
822
|
== Development
|
702
823
|
|
@@ -731,82 +852,6 @@ https://github.com/fontist/formulas[formulas] repository.
|
|
731
852
|
If you'd like to add a new formula repository or change settings for an existing
|
732
853
|
one, please refer to its documentation.
|
733
854
|
|
734
|
-
=== Private Fontist formulas and font repositories
|
735
|
-
|
736
|
-
There is an ability to use private fonts via private Fontist repositories.
|
737
|
-
|
738
|
-
A Fontist repository is a Git repo which contains YAML formula files. Formulas can be created
|
739
|
-
manually (see https://github.com/fontist/formulas/tree/master/Formulas[examples]),
|
740
|
-
or xref:Authoring Fontist formulas[auto-generated from an archive].
|
741
|
-
|
742
|
-
A repository can be either a HTTPS or SSH Git repo. In case of SSH, a
|
743
|
-
corresponding SSH key should be setup with `ssh-agent` in order to access this
|
744
|
-
private repository.
|
745
|
-
|
746
|
-
The `fontist repo setup` command fetches a repository's formulas, and saves the
|
747
|
-
repository's name and URL for later use.
|
748
|
-
|
749
|
-
Internally, all repositories are stored at
|
750
|
-
`~/.fontist/formulas/Formulas/private`.
|
751
|
-
|
752
|
-
[source,sh]
|
753
|
-
----
|
754
|
-
fontist repo setup NAME URL
|
755
|
-
----
|
756
|
-
|
757
|
-
E.g.
|
758
|
-
|
759
|
-
[source,sh]
|
760
|
-
----
|
761
|
-
fontist repo setup acme https://example.com/acme/formulas.git
|
762
|
-
# or
|
763
|
-
fontist repo setup acme git@example.com:acme/formulas.git
|
764
|
-
----
|
765
|
-
|
766
|
-
Then you can just install fonts from this repo:
|
767
|
-
|
768
|
-
[source,sh]
|
769
|
-
----
|
770
|
-
fontist install "private font"
|
771
|
-
----
|
772
|
-
|
773
|
-
If the private Fontist formula repository is updated, you can fetch the updates
|
774
|
-
with the `repo update` command:
|
775
|
-
|
776
|
-
[source,sh]
|
777
|
-
----
|
778
|
-
fontist repo update acme
|
779
|
-
----
|
780
|
-
|
781
|
-
If there is a need to avoid using private formulas, the repo can be removed
|
782
|
-
with:
|
783
|
-
|
784
|
-
[source,sh]
|
785
|
-
----
|
786
|
-
fontist repo remove acme
|
787
|
-
----
|
788
|
-
|
789
|
-
=== Private formulas
|
790
|
-
|
791
|
-
Authorization of private archives in private formulas can be implemented with
|
792
|
-
headers.
|
793
|
-
|
794
|
-
Here is an example which works with Github releases:
|
795
|
-
|
796
|
-
[source,yaml]
|
797
|
-
----
|
798
|
-
resources:
|
799
|
-
fonts.zip:
|
800
|
-
urls:
|
801
|
-
- url: https://example.com/repos/acme/formulas/releases/assets/38777461
|
802
|
-
headers:
|
803
|
-
Accept: application/octet-stream
|
804
|
-
Authorization: token ghp_1234567890abcdefghi
|
805
|
-
----
|
806
|
-
|
807
|
-
A token can be obtained on the
|
808
|
-
https://github.com/settings/tokens[GitHub Settings > Tokens page].
|
809
|
-
This token should have at least the `repo` scope for access to these assets.
|
810
855
|
|
811
856
|
=== Releasing
|
812
857
|
|
data/fontist.gemspec
CHANGED
@@ -30,6 +30,7 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.add_runtime_dependency "down", "~> 5.0"
|
31
31
|
spec.add_runtime_dependency "extract_ttc", "~> 0.1"
|
32
32
|
spec.add_runtime_dependency "nokogiri", "~> 1.0"
|
33
|
+
spec.add_runtime_dependency "mime-types", "~> 3.0"
|
33
34
|
spec.add_runtime_dependency "sys-uname", "~> 1.2"
|
34
35
|
spec.add_runtime_dependency "thor", "~> 1.0.1"
|
35
36
|
spec.add_runtime_dependency "git", "~> 1.0"
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Fontist
|
2
|
+
class CLI < Thor
|
3
|
+
module ClassOptions
|
4
|
+
def handle_class_options(options)
|
5
|
+
Fontist.preferred_family = options[:preferred_family]
|
6
|
+
Fontist.log_level = options[:quiet] ? :fatal : :info
|
7
|
+
|
8
|
+
if options[:formulas_path]
|
9
|
+
Fontist.formulas_path = Pathname.new(options[:formulas_path])
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|