From 2597b4ef3fc7ea36590d28b8b047e7d52445ef8a Mon Sep 17 00:00:00 2001 From: Fini Jastrow Date: Mon, 19 Dec 2022 17:10:38 +0100 Subject: [PATCH] generate-font-image-previews: Generate Symbols Only preview [why] We do not have a preview for the Symbols Only font. The Symbols Only font appears two times (with 1000 and with 2048 EM). [how] Remove one of the occurences of NerdFontSymbolsOnly in the fonts.json. The font matrix (for CI) still works, and we get only one entry in the fonts list on the gh-pages. Change the entry details accordingly. Create special svg template that includes lots of symbols. Change the destination filename to be imagePreviewFont instead of the patchedName + "Nerd Font". The website (gh-pages) expects the former file names. Signed-off-by: Fini Jastrow --- bin/scripts/generate-font-image-previews.sh | 31 ++++++++--- bin/scripts/lib/fonts.json | 16 ++---- bin/scripts/lib/template-font-preview2.svg | 57 +++++++++++++++++++++ 3 files changed, 84 insertions(+), 20 deletions(-) create mode 100644 bin/scripts/lib/template-font-preview2.svg diff --git a/bin/scripts/generate-font-image-previews.sh b/bin/scripts/generate-font-image-previews.sh index 98dddc0f1..c9f1bd011 100755 --- a/bin/scripts/generate-font-image-previews.sh +++ b/bin/scripts/generate-font-image-previews.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # Nerd Fonts Version: 2.3.0-RC -# Script Version: 1.0.1 +# Script Version: 1.1.0 # Create font previews. # All fonts need to be installed (or no preview is generated) # Files should end up in the gh-pages branch @@ -11,6 +11,7 @@ echo "Check generator version: $ver" output_dir="../../assets/img/previews/" template_svg="lib/template-font-preview.svg" +template2_svg="lib/template-font-preview2.svg" main() { mkdir -p "$output_dir" @@ -18,14 +19,21 @@ main() { for i in $(jq '.fonts | keys | .[]' lib/fonts.json); do patchedName=$(jq -r ".fonts[$i].patchedName" lib/fonts.json); imagePreviewFont=$(jq -r ".fonts[$i].imagePreviewFont" lib/fonts.json); + # if [ "$imagePreviewFont" != "$patchedName Nerd Font" ]; then + # echo "[mismatch] $imagePreviewFont != $patchedName Nerd Font" + # fi if [ -z "$imagePreviewFont" ]; then echo "[Skipping] $patchedName" continue fi - fc-list -q "$imagePreviewFont" \ - && generate_preview "$imagePreviewFont" "$patchedName Nerd Font" \ - || echo "[Missing] $imagePreviewFont" + if $( fc-list -q "${imagePreviewFont}:charset=41" ); then + generate_preview "$imagePreviewFont" "$patchedName Nerd Font" + elif $( fc-list -q "${imagePreviewFont}" ); then + generate_preview_symbols "$imagePreviewFont" "$patchedName Nerd Font" + else + echo "[Missing] $imagePreviewFont" + fi done } @@ -34,9 +42,18 @@ generate_preview() { font=$1 fontText=$2 echo "[Generating] $font" - sed -e "s/000000/ffffff/" -e "s/sans-serif/${font}/" -e "s/Font Name/${fontText}/" <"$template_svg" >"${output_dir}${fontText}.svg" - inkscape "${output_dir}${fontText}.svg" "--actions=select-all;object-to-path;export-filename:${output_dir}${fontText}.svg;export-do;quit-inkscape" 2>/dev/null - # svgo "${output_dir}${fontText}.svg" + sed -e "s/000000/ffffff/" -e "s/sans-serif/${font}/" -e "s/Font Name/${fontText}/" <"$template_svg" >"${output_dir}${font}.svg" + inkscape "${output_dir}${font}.svg" "--actions=select-all;object-to-path;export-filename:${output_dir}${font}.svg;export-do;quit-inkscape" 2>/dev/null + # svgo "${output_dir}${font}.svg" +} + +generate_preview_symbols() { + font=$1 + fontText=$2 + echo "[Gen. Symb.] $font" + sed -e "s/000000/ffffff/" -e "40,80s/sans-serif/${font}/" -e "s/Font Name/${fontText}/" <"$template2_svg" >"${output_dir}${font}.svg" + inkscape "${output_dir}${font}.svg" "--actions=select-all;object-to-path;export-filename:${output_dir}${font}.svg;export-do;quit-inkscape" 2>/dev/null + # svgo "${output_dir}${font}.svg" } main "$@"; exit diff --git a/bin/scripts/lib/fonts.json b/bin/scripts/lib/fonts.json index 10a3820db..9942f7938 100644 --- a/bin/scripts/lib/fonts.json +++ b/bin/scripts/lib/fonts.json @@ -463,22 +463,12 @@ { "unpatchedName": "Symbols Only", "RFN": false, - "patchedName": "Symbols-1000-em Nerd Font Complete", + "patchedName": "Symbols", "folderName": "NerdFontsSymbolsOnly", - "imagePreviewFont": "", + "imagePreviewFont": "Symbols Nerd Font Mono", "linkPreviewFont": false, "caskName": "symbols-only", - "description": "Just the Nerd Font Icons. I.e Symbol font only. 1000 EM size" - }, - { - "unpatchedName": "Symbols Only", - "RFN": false, - "patchedName": "Symbols-2048-em Nerd Font Complete", - "folderName": "NerdFontsSymbolsOnly", - "imagePreviewFont": "", - "linkPreviewFont": false, - "caskName": "symbols-only", - "description": "Just the Nerd Font Icons. I.e Symbol font only. 2048 EM size" + "description": "Just the Nerd Font Icons. I.e Symbol font only" }, { "unpatchedName": "Terminus", diff --git a/bin/scripts/lib/template-font-preview2.svg b/bin/scripts/lib/template-font-preview2.svg new file mode 100644 index 000000000..b6025bca7 --- /dev/null +++ b/bin/scripts/lib/template-font-preview2.svg @@ -0,0 +1,57 @@ + + + + + + + image/svg+xml + + + + + + + Font Name +                                         + +