fontist 1.13.1 → 1.14.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|