mirror of
https://github.com/ryanoasis/nerd-fonts.git
synced 2024-09-19 09:51:48 +02:00
2597b4ef3f
[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 <ulf.fini.jastrow@desy.de>
59 lines
2 KiB
Bash
Executable file
59 lines
2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Nerd Fonts Version: 2.3.0-RC
|
|
# 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
|
|
|
|
set -e
|
|
ver=$(inkscape --version)
|
|
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"
|
|
|
|
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
|
|
|
|
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
|
|
|
|
}
|
|
|
|
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}${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
|