Commit graph

497 commits

Author SHA1 Message Date
Fini Jastrow
809101da32 font-patcher: Improve weight checking
[why]
When the font does not have a PSweight string the font-patcher bugs.

[how]
Rewrite the code to be more robust against unexpected weight values.
Also make detected problems non-fatal.

Reported-by: František Hanzlík <frantisek_hanzlik@protonmail.com>
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-10-07 13:02:20 +02:00
Fini Jastrow
1563df5bd7 lib: Clearly mark i_material as obsolete
[why]
The Material Design Icons moved codepoints around the Nerd Fonts v3
transition. In the latest v2.x releases both codepoint ranges were
present, and so we had the MD icons with different names and sets and
codepoints in two different i_*.sh files.

Since the old MD codepoints have been dropped the i_material.sh is not
actively used anymore - well, it is used to create the 'marked as
removed' entries in the cheat sheet.

That has not been properly documented here.

Reported-by: @midnightrocket:gitter.im
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-10-03 15:12:16 +02:00
Fini Jastrow
66c6d820a0 lib: Sort files mentioned in readme
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-10-03 15:11:23 +02:00
Fini Jastrow
090fbbeebe Sunset in-repo releases
[why]
We struggle with the pack-committing of patched fonts to the repository
on release. This makes our repo grow extremely big. It would be better
to just use release artifacts for the releases and not commit any
patched font back.
There were different approaches discussed, but the problem remains that
I personally have no rights to implement anything of that - neither can
I force push to the default branch, nor can I create new repos in the
organization.

[how]
To make it still possible to add new fonts without a repo size
explosion we do not release NEW fonts back to the repository as commits,
but old fonts are handled as before.
NEW fonts:
 * have a new property set in the fonts.yaml 'database'
 * are released as release artifact via release workflow (but not
   committed back)
 * get a readme in the patched_fonts/ directory that points to the
   release artifact page

The solution is not ideal, but for sure better than not adding any fonts
anymore or having the repo grow in size faster and faster.

At some point in time I would like to phase out all in-repo releases,
also for OLD fonts.

This scheme has been (manually) used / introduced for Intel One.
With this change the .gitignore file is automatically adapted to any new
font that is added with the repoRelease flag set to false (which should
be the default for any added font from now on).

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-09-27 11:20:36 +02:00
Fini Jastrow
2ce56141db name-parser: Unify quotes used for strings
[why]
We use single quotes everywhere else.
Keep this consistent.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-09-27 05:46:33 +02:00
Fini Jastrow
99688c40c7 font-patcher: Introduce weight check
[why]
Windows seems to construct the font names including the PS weight.
We have some sourcefonts that are broken (i.e. have in fact different
weights but have the same PS weight and/or OS2 weight.

That raises problems with the fonts on Windows.

[how]
Check and compare all weight metadata (except CID) and issue a warning
if they differ too much. That might fail with unusual weight names,
though.

See Issue #1333 and PR #1358.

Reported-by: LeoniePhiline
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-09-27 05:46:33 +02:00
Fini Jastrow
bb4aeca8e7 standardize-and-complete-readmes: Fix broken links
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-07-26 15:55:15 +02:00
Fini Jastrow
548cd4e493 IntelOne: Prevent in-repo-release
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-07-26 15:02:27 +02:00
Fini Jastrow
f29c62ab17 standardize-and-complete-readmes: Allow to link releases
[why]
Some fonts will not be released to the repo; but only exist patched as
release atrifacts. This needs adapted readmes.

[how]
If such a font is encountered direct links to the release archives are
put into the readme file.

Decide based on information in the font.json file.

If no info is found in the json file (i.e. all existing fonts) it
defaults to release-also-to-repo behavior.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-07-26 15:02:27 +02:00
Fini Jastrow
a2bd75865a standardize-and-complete-readmes: Simplify code
[why]
We have a lot duplicated code here.

[how]
As the to and to-dir never changes we can assign that outside all the if
cases.
We can also always just add the extra information to the (only one,
independent of number of incoming data files) output after all the ifs.

Note that this also adds the extra information if we had no readme at
all. Previous code would not add anything to that (for whatever reason).

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-07-26 15:02:27 +02:00
Fini Jastrow
ebdcc0b746 IntelOne: Correct minor settings glitches
* The programmingfonts.org link was wrong
* The description has to be in abbreviated style

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-07-26 15:02:27 +02:00
Fini Jastrow
db9a71a270 generate-font-image-previews: Update Inkscape calls
[why]
Verbs have been dropped from Inkscape with version 1.2

[how]
Use actions instead. I'm not sure how well that works with older
Inkscapes now, but ... sigh

[note]
Also add missing helper for font filenames for Intel One Mono.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-07-26 15:02:27 +02:00
Fini Jastrow
d3181df01f name-parser: Add IntelOne replacement to SIL table
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-07-26 15:02:27 +02:00
Fini Jastrow
bac7332702 name-parser: Sort SIL table
No functional change

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-07-26 15:02:27 +02:00
Dennis Prazak
5d85a45a93 Add Intel One Mono 2023-07-26 15:02:27 +02:00
Fini Jastrow
0eef3a89f9 complete-readmes: Do not detect blanks as "name change"
[why]
When we rename "Envy Code R" to "EnvyCodeR" this is detected as RFN
relevant name change, which it is not.

[how]
Compare the blank removed lower cased names.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-07-15 19:33:55 +02:00
Fini Jastrow
57f17e23bc Add font: Envy Code R (fix)
[why]
Forgotten change

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-07-15 19:33:55 +02:00
Fini Jastrow
9512cddd4f Add font: Envy Code R
The font has RFN, but we are allowed to use the patched name
"Envy Code R Nerd Font", see PR #1318.

Thanks go to Damien Guard!

Fixes: #1205

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-07-15 15:17:39 +02:00
Fini Jastrow
28f5657782 archive-fonts: Unify README handling
[why]
The readmes in the zip and tar.xz archives differ. The zips have only a
very small and generic `readme.md`. The tar.xz have that readme as well as
the `README.md` from the patched-fonts/ directory. This should be the same
for both.

To have two files with names that just differ in case (`readme.md` and
`README.md`) can be problematic on some platforms.

[how]
Combine both readmes into one file - put the generic info in the top of
the readme.

Also include the RELEASE_VERSION if known into the readme. That makes it
more easy to identify which Nerd Font release that archive came from.

RELEASE_VERSION is set in the release workflow.

Fixes: #1284

Reported-by: Jan Klass <kissaki@posteo.de>
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-07-15 12:00:52 +02:00
Fini Jastrow
c173f661a0 docker: Transport return code to outside
Fixes: #1316

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-07-11 22:34:10 +02:00
Fini Jastrow
c0d9a22d5f Add InconsolataGo programmingfonts link
Fixes: #1313

Reported-by: Koen Lageveen <braver>
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-07-06 10:53:16 +02:00
Fini Jastrow
be013e5987 Add GohuFont programmingfonts link
Thanks to Koen Lageveen <braver>

Fixes: #1312

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-07-05 12:14:25 +02:00
Finii
ef6fe05754 [ci] Bump release version 2023-06-04 20:32:30 +00:00
Fini Jastrow
5eebd95456 fetch-archives: Allow to specify a regex
[why]
Now where we have zip and tar.xz archives one might want to just fetch
one specific one. So we need to have a pattern not only for the
beginning of the file name.

[how]
Enable full regexes for the filtering.
For this we need to escape blanks in the pattern/regex, that a user
might specify (./fetch-archive.sh v2.2.2 'Some Font').

[note]
This is already then used for the casks workflow, as that only needs the
zips.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-06-02 20:44:08 +02:00
Fini Jastrow
a11fa2db53 archive-fonts: Fix various ShellCheck issues
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-06-02 19:06:04 +02:00
Fini Jastrow
a519cfe3a1 i_all: Fix various ShellCheck issues
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-06-02 16:58:04 +02:00
Fini Jastrow
ed4028aaaa optimize-original-source: Fix various ShellCheck issues
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-06-02 16:58:03 +02:00
Fini Jastrow
248508e1d6 version-bump: Fix various ShellCheck issues
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-06-02 16:58:03 +02:00
Fini Jastrow
3454239496 tests.sh: Fix various ShellCheck issues
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-06-02 16:58:03 +02:00
Fini Jastrow
a621ded9e3 test-powerlines: Fix various ShellCheck issues
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-06-02 16:58:03 +02:00
Fini Jastrow
9be8e86a2d standardize-readmes: Fix various ShellCheck issues
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-06-02 16:58:03 +02:00
Fini Jastrow
a10a77bc40 gotta-patch-em: Fix various ShellCheck issues
[note]
$powerline has been removed already with commit
  96cd985b5  Drop counting variations stuff and unify readme creation

$last_current_dir has never been functional

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-06-02 16:58:03 +02:00
Fini Jastrow
fc1f816dc5 generate-sample-set: Fix various ShellCheck issues
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-06-02 16:58:03 +02:00
Fini Jastrow
ad56629f40 generate-font-image-previews: Fix various ShellCheck issues
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-06-02 16:58:03 +02:00
Fini Jastrow
06ba2a8a28 generate-css: Fix various ShellCheck issues
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-06-02 16:58:03 +02:00
Fini Jastrow
7290f0208f casks: Fix various ShellCheck issues
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-06-02 16:58:03 +02:00
Fini Jastrow
8f60f64617 fetch-archives: Fix various ShellCheck issues
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-06-02 16:58:03 +02:00
Fini Jastrow
f6f80995a1 archive-fonts: Create tar.xz packs
See #1233

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-06-02 13:09:59 +02:00
Fini Jastrow
c4a3e0249e archive-fonts: Make PWD independent
[why]
Scripts should run regardless of current working directory.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-06-02 13:09:59 +02:00
Fini Jastrow
6b49625585 archive-fonts: Whitespace
No functional change except working in sorted order.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-06-02 13:09:59 +02:00
Fini Jastrow
f81c702165 test-fonts: Correct MDI range
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-06-01 08:06:29 +02:00
Fini Jastrow
d3d302fb69 test-fonts: Drop "all" range
[why]
The "all" range just prints again all the ranges that we previously
already printed (?!!).

As we can not select individual sets this does not make much sense.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-06-01 08:06:29 +02:00
Fini Jastrow
6bb3b23d88 test-fonts: Fix missing codepoints and allow MacOS
[why]
If a set has multiple ranges defined only the last of that ranges is
actually printed.

[how]
With commit
  7a4b5f872  Fixes build errors (ShellCheck)

a false positive of spellcheck lead to a 'correction' in the code that
actually broke it. The mapfile does not accumulate the sequences but
fills it in and so just the last sequence 'survives'.

Dropping mapfile also enables this script on MacOS, as that ancient
bash does not have mapfile.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-06-01 07:54:21 +02:00
Fini Jastrow
6f1cdb82d9 test-fonts: Allow for 5 digit codes
[why]
The code is hardcoded for 4 (hex-)digit codepoints. If we want to
examine 3 or 5 digit codes it breaks the formatting.

[how]
Switch from \u to \U to allow printing codepoints with more than 4
digits. This works on all machines I tested (Linux/Mac).

Manually pad the codepoint to get a consistent length independent of
actual number of digits. We can not use "%5x" because we want to
underline only the actual digits.
This also makes the output of empty slots nicer because the underline is
skipped if there is no code.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-06-01 07:37:35 +02:00
hasecilu
dcbcef0fe6
Update test-fonts.sh version.
- 1.1.0 version.
- Add example command to change column size.
2023-05-31 13:41:19 -06:00
hasecilu
bf4fc58b8b
Update style of for loop, from using seq to C style. 2023-05-31 11:37:06 -06:00
hasecilu
e72d7ba5e7
Update range of font logos 2023-05-31 10:57:37 -06:00
hasecilu
a260711d46
Use single square bracket on if statement. 2023-05-30 23:48:38 -06:00
hasecilu
75960ab56d
Use first arguments as wrapping value.
- Resistant to bad inputs.
- First checks if argument is a number and then checks if its greater than 2, if it's, the `wrapAt` variable is updated.
2023-05-30 23:45:53 -06:00
hasecilu
89dc2f8de7
Rename unused dummy variable 'i' to '_'.
- According to https://www.shellcheck.net/wiki/SC2034 : "For throwaway variables, consider using _ as a dummy".
2023-05-30 20:49:19 -06:00
hasecilu
7ccf229c37
Attend SC2071 error code.
- See: https://www.shellcheck.net/wiki/SC2071
2023-05-30 20:41:20 -06:00
hasecilu
6f7f9e92be
Update wrapAt value to 16.
- Since the format of the values used are normally hexadecimal seems a reasonably election.
2023-05-30 20:36:31 -06:00
hasecilu
283cedb2d4
Update line decoration variables.
- Each variable was splitted in 3 variables containing the start block, middle block and end block respectively.
- Now the wrapAt variable controls programatically the length of the decorations lines, (for loop).
- Minimal wrapAt allowed value is 3.
2023-05-30 20:34:09 -06:00
Fini Jastrow
1b7711564a generate-css: Adapt text
[why]
PR #1252 and this ran slightly out of sync.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-05-30 19:41:34 +02:00
rszyma
df64f73f2a modify generate-css.sh for changes in #1252 2023-05-30 19:41:34 +02:00
Fini Jastrow
930eef239c name-parser: Fix some Blex fonts
[why]
IBM Plex uses some abbreviations also in the fullname and we do not try
abbreviations when resolving weights.

[how]
As this is the only font that has such specials we handle it beforehand
and do not try all combinations of abbreviated and long keywords.

And then their abbreviations are also not standard - at least not used
by us or Adobe, etc.

For such a small amount of affected font files it seems in order to
specifically just fix them instead of a general solution.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-05-26 13:01:58 +02:00
Fini Jastrow
f5e648b873 IBM Plex: Fix "Text" weight
[why]
The 'Text' weight of Plex is handled as 'other', means that this is
added to the font's name and is a distrinct own family.

But in the original font it is used as weight.

[how]
Remove special handling of 'text' in the font name.
Add 'Text' to known_weights list.

"Text" is not a standard naming, but I see no problems when we handle it
as one. This keeps the family relationships in Blex like Plex.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-05-26 13:01:58 +02:00
Fini Jastrow
2e9caea9cd name-parser: Simplify for CodeClimate
[why]
Function get_name_token has a Cognitive Complexity of 12 (exceeds 9 allowed).
Consider refactoring.

[how]
Remove not really needed special case.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-05-26 13:01:58 +02:00
Fini Jastrow
07a23bda90 name-parser: Allow dashes between modifier and weight
[why]
Some fonts might have a non-standard (i.e. broken) weight naming scheme:
They put a blank or a dash between the modifier and the weight, for
example "Extra Bold" or "Demi-Condensed", when they mean "ExtraBold"
resp "DemiCondensed".

The former happens with CartographCF, the later with IBM3270.

[how]
Automatically allow a dash between modifier and weight, which comes up
as CamelCase boundary. Insert an optional dash (r'-?') into such
boundaries.
For the further lookup we need to remove the dash in the found keyword,
if there is any, to get back to standard naming.

This might break if the font name ends in a modifier. So we can not
really distinguish

       Font Name Extra Bold Italic
    => Font Name - ExtraBold Italic
    => Font Name Extra - Bold Italic

The known modifiers are 'Demi', 'Ultra', 'Semi', 'Extra'.

It is possible but unlikely that a font name ends in one of these.
For example "Modern Ultra - Bold".

[note]
The question arises if we should not parse the PSname instead of the
Fullname; and stick to the dash there as boundary.
The problem might be prepatched fonts with broken naming, that would be
parsed completely wrong then. So maybe the current approach is still the
best, with the caveat given above (fontnames ending in a modifier).

[note 2]
Funny enough the variable allow_regex_token was not used at all :->
Some leftover? Anyhow we use it now.

[note 3]
We can still not remove the special handling for IBM3270, because the
font initially looks like a PSname and this is parsed as such, which
breaks the name in the incorrect place:

        PSname template  = "Name-StylesWeights"
        Fullname of 3270 = "IBM 3270 Semi-Condensed"

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-05-26 13:01:58 +02:00
Fini Jastrow
f1c2eea937 name-parser: Fix unify_style_names()
[why]
The code is obviously wrong. No effect has been seen, though.

First we check if a certain string is a key in the dict.
If it is, we retrieve the value with the string lower-cased as key.

This does not make sense.

[how]
All the keys are lower case anyhow, so the code seems unneeded. Maybe it
is a leftover. The styles that go into it _and are in the dict_ all come
from a regex-enabled search and thus are lower-cased.

Whatever, to have the correct code we use the lower-cased string for
both, checking for existance and retrieving the value - this is the only
sane approach.
Also change to dict.get() method instead of a self made if code.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-05-26 13:01:58 +02:00
Fini Jastrow
b0e5a35477 name-parser: Remove filename parsing code
[why]
Patching CartographCF-Bold.ttf creates this naming:

    Family (ID 1)      : CartographF Nerd Font Condensed
    SubFamily (ID 2)   : Bold
    Fullname (ID 4)    : CartographF Nerd Font Condensed Bold
    PSN (ID 6)         : CartographFNF-CondensedBold
    PrefFamily (ID 16) : CartographF Nerd Font
    PrefStyles (ID 17) : Condensed Bold

    CartographF Nerd Font Condensed Bold
    \===> 'CartographFNerdFont-CondensedBold.ttf'

[how]
The font-patcher historically used the file name of the to-be-patched
font to come up with the new name. When the FontnameParser has been
developed that mechanics has been copied at least for fallback. The
earliest tests compared old and new naming with all the filenames.

Later, when the FontnameParser has been used to really apply name
changes it has always based the parsing on the Fullname or the PSname,
because they really hold the information (or at least should hold);
while the filename might be completely random.

Still code the dealt with specific problems in FILEnames prevailed. The
Ubuntu font for example has a file name like 'Ubuntu-C.ttf', and we
needed to convert the C to Condensed.

As that requirement vanished we can drop all the code that has been
added specifically only for parsing the Ubuntu font filenames.

Side note: USUALLY font filenames should be roughly equal to the PSname.

Fixes: #1258

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-05-26 13:01:58 +02:00
Fini Jastrow
438843d57a FontnameParser: Fix fsSelection for --has-no-italic
[why]
For fonts that have no Italic but an Oblique - i.e. when Oblique shall
replace the Italic role in RIBBI font grouping (classic group of 4) -
that grouping fails.

This affects DejaVu on Putty.

[how]
For RIBBI grouping only the classic bits are considered. That means that
for fonts that have Oblique instead of Italic (and not additionally) we
need to set the ITALIC bit and the OBLIQUE bit. This has been
overlooked.

Cite from the specs:

> This bit, unlike the ITALIC bit (bit 0), is not related to style-linking
> in applications that assume a four-member font-family model comprised
> of regular, italic, bold and bold italic. It may be set or unset
> independently of the ITALIC bit. In most cases, if OBLIQUE is set, then
> ITALIC will also be set, though this is not required.

[note]
Also increase font-patcher version.

Fixes: #1249

Reported-by: Huifeng Shen <liaoya@gmail.com>
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-05-22 13:32:11 +02:00
Fini Jastrow
fe9a2d70f3 casks: Add zap stanza comment
[why]
Casks without zap stanza are flagged; all casks should contain them.

The font casks do not really need zap.

[how]
What is the right way to say 'we considered zap, but do not need it'?

It seems that other people add a comment (the same comment).
For example here:
https://github.com/Homebrew/homebrew-cask/pull/119090

And that seems rather widespread.

        git/homebrew-cask/Casks$ git grep '# No zap stanza required' | wc -l
        101

Include the same in our casks.

[note]
https://github.com/Homebrew/homebrew-cask/issues/88469

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-05-13 12:53:15 +02:00
Fini Jastrow
d812d153ab Start release v3.0.1
Edit ./package.json
Run version-bump.sh 3.0.1

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-05-13 07:49:58 +02:00
Fini Jastrow
f17700946c Add script to create sample set
[why]
After changing something in the patch process it is unclear if all the
prepatched fonts will look ok later. It would be nice to produce one
font from each input font (and not the complete set of each of the faces
of that font) to have some hopefully representative example how symbols will
blend into the font.

[how]
Add a script with explicit list of representative fonts.
Evaluate the config.cfg and execute one patcher run.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-05-12 13:21:20 +02:00
Fini Jastrow
41521254f1 gotta-patch-em: Fix wrong config setting
[why]
The config.cfg settings can be wrong if the to-be-patched font does not
set its own. The previous settings are never cleared, so that the flags
leak into the next font(s).

This is only relevant when the run is not parallel (i.e. no -j given) and
all fonts are patched sequentially in the same shell.
On parallel runs (like the release process) this is not a problem
because each patcher runs in its own subshell.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-05-12 13:21:20 +02:00
Finii
8fd192e77c [ci] Rebuild original-source font 2023-05-11 18:04:07 +02:00
Fini Jastrow
781206aaba generate-original-source: Increase icon size
[why]
The Seti and Custom icons are smaller than in ancient Nerd Font versions
and can seem a bit flimsy. In fact we add about 25% of padding (12% left
and 12% right) to each icon, which seems a bit generous.

This does not show in Nerd Font Mono fonts, because the icons will be
rescaled there, but in the other fonts.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-05-11 18:04:07 +02:00
Fini
7e2326b86c
Merge pull request #1222 from negset/master [skip ci]
Fix the REGULAR bit of the fsSelection being set incorrectly
2023-05-10 13:00:53 +02:00
Fini Jastrow
9f54f24738 Octicons: Create missing file-symlink-directory (2/2)
Just run ./generate.

Compare commit
  7764e05  Create new octicons.ttf (update to v18.3.0) (2/2)

Fixes: 1213

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-05-10 12:49:17 +02:00
negset
9f6f89ae41 name-parser: Fix REGULAR bit of fsSelection
Set bit 6 (REGULAR) of fsSelection only when bit 0 (ITALIC), bit 5 (BOLD), and bit 9 (OBLIQUE) are clear.
2023-05-10 16:50:50 +09:00
Fini Jastrow
09c83150ae Add Iosevka Term Slab
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-05-07 12:41:24 +02:00
Fini Jastrow
80664a90fe font-patcher: Do not log to file always
[why]
Maybe it is not a good idea to always create the log file, as most
people will never look into it. The main reason for it was the
gotta-patch-em script so that one can check after lots of runs what the
details were.

[how]
Introduce parameter to --debug option.
0 = no debug output
1 = log to file only (previously always selected)
2 = log to stdout only
3 = log to file and stdout (previous default for --debug)

Just specifying --default equals now --debug 2.
The gotta-patch-em runs now with --debug 1.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-05-06 10:54:05 +02:00
Fini Jastrow
46168d53d0 cheat-sheet: Add hint for webfont.css
Compare commit
  7d265161f  Make Symbols-Only webfonts available stand alone

Suggestion via Gitter by @Mikle-Bond

Suggested-by: Michael <Mikle_Bond@mail.ru>
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-05-04 12:42:14 +02:00
Fini Jastrow
1f70d5bc3a generate-css: Create cheat sheet with removed icons
With v3.0.0 we removed some icons and some codepoints have been reused
for a different (expanding) set. We want to show the old (removed) icons
correctly and the new ones also, so we need the old and the new font for
the webpage and reference it accordingly.

For the a new style .nfold (read: nd-olf) is introduced and utilized.

See pairing commit in the gh-pages branch:
    Date:   Thu May 4 06:01:33 2023 +0200
    Update cheat sheet WITH removed icons

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-05-04 12:42:14 +02:00
Fini Jastrow
d9f7dbe238 Prepatched fonts: Revive some ligature removal
[why]
Some sourcefonts, even that are monospaced, have a `fi` and/or `fl`
ligature that maps into one cell. That looks very strange.

[how]
Partially revert commit
  148b0c445  Sunset ligature removal

for the cases that have a one-cell `fi`, `fl`, etc ligature, or a `ldot`
related ligature - that is active by default. Discretionary ligatures or
Stylistic Sets are not changed.

Do the removal on all patched fonts for consistency, not just `Nerd Font Mono`.

[note]
On Noto different subtables are needed for Sans, Serif and Sans-Mono. We
can not set up different configs for each, so all are tried in all fonts
and might fail (this is normal).
Same holds for OpenDyslexic Alta, Regular, Mono, Bold...

Fixes: #1187

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-05-02 17:23:11 +02:00
Fini Jastrow
bf3506a8d5 Add some ProgrammingFonts.org links
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-05-01 15:16:06 +02:00
Fini Jastrow
c62fb7a831 Update Sankey diagram
[why]
Octicons got expanded.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-05-01 15:02:53 +02:00
Fini Jastrow
4f46bdfada generate-casks: Fix for nameing changes
[why]
No casks are created.

We have no "Complete" in the path anymore.
And there is no Windows Compatible.

[how]
Drop all the now-unneeded filtering.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-05-01 11:10:01 +02:00
Fini Jastrow
6a24da8602 gotta-patch-em: Remove debug code leftover
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-30 23:33:51 +02:00
Fini Jastrow
9b3677b7f2 archive-fonts: Fail if something is amiss
[why]
If we do not have a license file an error will be output, but the
complete script will continue and return success.

[how]
Set mode to exit on error.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-30 21:00:46 +02:00
Fini Jastrow
1c8420c807 standardize: Fix missing READMEs
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-30 20:58:42 +02:00
Fini Jastrow
0b201ce547 gotta-patch-em: Fix missing READMEs
[why]
When running without -j the README.md files are not created.

[how]
Allow scripts to be run with any PWD.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-30 15:41:59 +02:00
Fini Jastrow
5fad4e7270 gotta-patch-em: Fix too much purging
[why]
The destination has been purged too often, thus loosing already newly
patched fonts.

[how]
Always quote variables in shell tests :->

Fixes: 1182

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-30 15:41:59 +02:00
Fini Jastrow
a63cb3b329 Switch from ComicMono to ComicShannsMono
[why]
The Bold font is bad?
The repo is not maintained?

[how]
The ComicShannsMono is not monospaced ... fix it.
It has Overlapping contours ... fix it.

Create a useful BOLD face.

This was originally PR #1004

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-30 15:41:59 +02:00
Fini Jastrow
40cf00c58a ComicMono: Add some more metadata
This was originally PR #1004

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-30 12:16:25 +02:00
Fini Jastrow
d1d73b20e3 Add missing steps to dummy "release" script
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-28 18:30:06 +02:00
Fini Jastrow
af96dbaf28 Fix webfont generator
After all the renames.
Keep the webfont filename the same as before because ppl might use it
directly.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-28 18:30:06 +02:00
Fini Jastrow
8b3257d676 Fix font preview script
[why]
After the massive renaming this needs some adaption.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-28 18:30:06 +02:00
Fini Jastrow
354eca5e77 On check-font runs, place docu in correct tree
[why]
When we run gotta-patch-em with -c the font files and the licenses will
end up in check-fonts/ and not in patched_fonts/.

Since gotta-patch-em calls standardize to add the readmes, the readmes
will always end up in patched_fonts/, even on check runs.

[how]
Add option to standardize, that transports the destrination tree root.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-28 18:30:06 +02:00
Fini Jastrow
36f8d762a6 Drop "complete/" subdirs
[why]
Since we do not have any other variations anymore it does not make sense
to keep that directory. The renaming with 3.0.0 is a good point in time
to drop it as the filename scheme changes anyhow.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-28 18:30:05 +02:00
Fini Jastrow
334238d030 Start release v3.0.0
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-27 21:57:22 +02:00
Fini Jastrow
f4ca28cd71 Stabilize sorting in fontconfig and casks
Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-27 21:39:49 +02:00
Fini Jastrow
9c8a91342c Fix: Drop counting variations stuff [skip ci]
[why]
We have no license files in the patched-fonts dir.
Sometimes we have no README.md either.

[how]
Well, fix code for extradeep directory structures.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-27 21:01:42 +02:00
Fini Jastrow
8cd3ae0c80 Fix: Rename Bitstream Vera
[why]
The intend was to drop 'Sans Mono' in the renaming process, because the
name is just too long.

ERROR: VeraMono-Italic.ttf ====-< Shortening too long PS family name: BitstromWeraSansM Nerd Font Mono -> BitstromWeraSansM Nerd Font Mon
ERROR: VeraMono-Italic.ttf ====-< Family (ID 1)      too long (32 > 31): BitstromWeraSansM Nerd Font Mono

[how]
Include the whole name in the replacement pattern.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-27 20:35:36 +02:00
Fini Jastrow
4642ab095c Rename Bitstream Vera (due to RFN)
[why]
The license of Bitstream Vera requires patched fonts to contain neither
"Bitstream" nor "Vera" in the name. It explicitly requires that also
for fonts that (only) add some glyphs.

Yes, we are rather late to notice this :-( Sorry.

[how]
Rename Bitstream Vera to BitstromWera, and also drop the Sans Mono part
of the name. The new name looks and sounds similar enough to get the
reference, while being shorter and somewhat logical.

Fixes: #1173

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-27 18:59:32 +02:00
Fini Jastrow
96cd985b58 Drop counting variations stuff and unify readme creation
[why]
The variation lists are very long and noone will ever look at them.
Instead we have a font-info.md file, for what reasons?

[how]
Replace the function the font-info.md file had with README.md.

Drop all the variation lists.

Automatically call the readme creation in the gotta-patch-em instead of
just hinting that one should call that (standardize-and-complete-readmes.sh).
2023-04-27 10:30:48 +02:00
Fini Jastrow
529532d897 standardize: Retab with ts=2
[why]
The file is a mix auf indentation via two blanks and single tabs.
Tabs usually render as 8 positions.
Also it is strange to not-stick to one indent style.

[how]
<vi>:
:set ts=2
:set et
:retab
:wq

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-27 10:22:29 +02:00
Fini Jastrow
850b8b422f standardize: Use fonts.json as RFN info source
[why]
When creating the readmes the config.cfg are checked for details on a
possible RFN renaming. There are specific variables that need to be
filled in these cases: config_rfn and config_rfn_substitue.

The same RFN information is already stored in the fonts.json database.
Having the information stored in two locations is always problematic and
can easily lead to inconsistencies.

[how]
Remove information from config.cfg file and use data stored in
fonts.json instead.

Drop config.cfg files that are empty afterwards.

Also fix some patchedName in fonts.json en passant.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-25 17:03:05 +02:00
Fini Jastrow
4be86d4d60 Fix standardize-and-complete-readmes
[why]
A lot of fonts have a wrong RFN statement and name substitude in their
created info file, for example IBM3270:

```
--- a/patched-fonts/3270/Condensed/font-info.md
+++ b/patched-fonts/3270/Condensed/font-info.md
@@ -1,6 +1,20 @@
 # 3270

+## Why `Anonymice Pro` and not `Anonymous Pro`?
+
+What's in a name? The reason for the name change is to comply with the SIL Ope
```

[how]
The rfn information is stored in the config.cfg files - i.e. variables.
They are reset if the next font does not have a config.cfg file; but
they are not reset if the next font DOES have a config.cfg file but does
not set anything.

Reset the values before reading the config.cfg file.

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
2023-04-25 10:31:43 +02:00