2018-07-09 16:20:40 +02:00
|
|
|
#!/usr/bin/env bash
|
2023-01-24 17:56:06 +02:00
|
|
|
# Nerd Fonts Version: 2.3.3
|
2022-09-11 18:41:34 +02:00
|
|
|
# Script Version: 1.2.0
|
|
|
|
# Generates CSS file for the font and cheat sheet code
|
2017-04-27 01:54:53 +02:00
|
|
|
|
2018-01-13 05:20:52 +02:00
|
|
|
# shellcheck disable=SC1091
|
2017-04-27 01:54:53 +02:00
|
|
|
source ./lib/i_all.sh
|
|
|
|
|
2017-05-02 01:45:47 +02:00
|
|
|
output_css_file="../../css/nerd-fonts-generated.css"
|
2022-09-11 15:37:15 +02:00
|
|
|
output_css_min_file="../../css/nerd-fonts-generated.min.css"
|
2022-09-11 18:23:02 +02:00
|
|
|
header_css_file="./data/css-header.txt"
|
|
|
|
header_css_min_file="./data/css-min-header.txt"
|
2022-09-11 18:41:34 +02:00
|
|
|
|
|
|
|
if [ ! -d "../../temp" ]; then
|
|
|
|
mkdir "../../temp"
|
2022-09-10 17:16:05 +02:00
|
|
|
fi
|
2022-09-11 18:41:34 +02:00
|
|
|
output_cheat_sheet_file="../../temp/2017-01-04-icon-cheat-sheet.md"
|
|
|
|
cheat_sheet_head_file="./data/cheatsheet-head.txt"
|
|
|
|
cheat_sheet_foot_file="./data/cheatsheet-foot.txt"
|
|
|
|
|
2017-05-19 10:14:53 +02:00
|
|
|
LINE_PREFIX="# [Nerd Fonts] "
|
2023-01-24 17:56:06 +02:00
|
|
|
version="2.3.3"
|
2017-04-27 01:54:53 +02:00
|
|
|
|
|
|
|
# clear files
|
2018-01-13 05:20:52 +02:00
|
|
|
true > "$output_css_file" 2> /dev/null
|
2022-09-11 15:37:15 +02:00
|
|
|
true > "$output_css_min_file" 2> /dev/null
|
2018-01-13 05:20:52 +02:00
|
|
|
true > "$output_cheat_sheet_file" 2> /dev/null
|
2017-04-27 01:54:53 +02:00
|
|
|
|
2017-05-02 01:45:47 +02:00
|
|
|
# describe how the classes were established
|
2017-07-30 03:17:11 +02:00
|
|
|
{
|
2018-01-13 05:20:52 +02:00
|
|
|
printf "/*\\n"
|
|
|
|
printf " *%s Website: https://www.nerdfonts.com\\n" "$LINE_PREFIX"
|
|
|
|
printf " *%s Development Website: https://github.com/ryanoasis/nerd-fonts\\n" "$LINE_PREFIX"
|
|
|
|
printf " *%s Version: %s\\n" "$LINE_PREFIX" "$version"
|
|
|
|
printf " *%s The following is generated from the build script\\n" "$LINE_PREFIX"
|
2022-09-11 15:37:15 +02:00
|
|
|
printf " */\\n"
|
|
|
|
} | tee "$output_css_min_file" >> "$output_css_file"
|
2017-07-30 03:17:11 +02:00
|
|
|
|
2022-09-11 15:37:15 +02:00
|
|
|
# add top section of CSS
|
|
|
|
{
|
|
|
|
printf "\\n"
|
|
|
|
cat "$header_css_file"
|
|
|
|
} >> "$output_css_file"
|
|
|
|
cat "$header_css_min_file" | tr -d '\n' >> "$output_css_min_file"
|
2017-04-27 01:54:53 +02:00
|
|
|
|
2022-09-11 18:41:34 +02:00
|
|
|
cat "$cheat_sheet_head_file" > "$output_cheat_sheet_file"
|
|
|
|
|
2017-04-27 01:54:53 +02:00
|
|
|
echo;
|
|
|
|
|
2018-01-12 04:47:59 +02:00
|
|
|
# shellcheck disable=SC2154
|
|
|
|
# we know the '$i' is from the sourced file
|
2017-04-27 01:54:53 +02:00
|
|
|
for var in "${!i@}"; do
|
|
|
|
# trim 'i_' prefix
|
|
|
|
glyph_name=${var#*_}
|
|
|
|
# replace _ with -
|
|
|
|
glyph_name=${glyph_name/_/-}
|
|
|
|
glyph_char=${!var}
|
|
|
|
glyph_code=$(printf "%x" "'$glyph_char'")
|
|
|
|
|
|
|
|
#echo "$var=${!var}"
|
|
|
|
|
2022-09-10 17:16:05 +02:00
|
|
|
#echo "$glyph_name"
|
|
|
|
#echo "$glyph_char"
|
|
|
|
#echo "$glyph_code"
|
2017-04-27 01:54:53 +02:00
|
|
|
#printf "%x" "'$glyph_char'"
|
|
|
|
|
|
|
|
# generate css rules
|
|
|
|
{
|
2019-08-11 23:20:42 +02:00
|
|
|
printf ".nf-%s:before {" "$glyph_name"
|
2018-01-13 05:20:52 +02:00
|
|
|
printf "\\n"
|
|
|
|
printf " content: \"\\%s\";" "$glyph_code"
|
|
|
|
printf "\\n"
|
2017-04-27 01:54:53 +02:00
|
|
|
printf "}"
|
2018-01-13 05:20:52 +02:00
|
|
|
printf "\\n"
|
2017-04-27 01:54:53 +02:00
|
|
|
} >> "$output_css_file"
|
|
|
|
|
2022-09-11 15:37:15 +02:00
|
|
|
# generate css min rules
|
|
|
|
{
|
|
|
|
printf ".nf-%s:before{content:\"\\%s\"}" "$glyph_name" "$glyph_code"
|
|
|
|
} >> "$output_css_min_file"
|
|
|
|
|
2017-04-27 01:54:53 +02:00
|
|
|
# generate HTML cheat sheet
|
|
|
|
{
|
2022-09-11 18:41:34 +02:00
|
|
|
printf " <div class=\"column\">"
|
2018-01-13 05:20:52 +02:00
|
|
|
printf "\\n"
|
2023-02-01 14:28:35 +02:00
|
|
|
if [[ "$glyph_name" = mdi-* ]]; then
|
|
|
|
printf " <span class=\"corner-red\"></span><span class=\"corner-text\">obsolete</span>\\n"
|
|
|
|
fi
|
2022-09-11 18:41:34 +02:00
|
|
|
printf " <div class=\"nf nf-%s center\"></div>" "$glyph_name"
|
2018-01-13 05:20:52 +02:00
|
|
|
printf "\\n"
|
2023-01-25 20:55:32 +02:00
|
|
|
printf " <div class=\"class-name\">nf-%s</div><div title=\"Copy Hex Code to Clipboard\" class=\"codepoint\">%s</div>" "$glyph_name" "$glyph_code"
|
2018-01-13 05:20:52 +02:00
|
|
|
printf "\\n"
|
2022-09-11 18:41:34 +02:00
|
|
|
printf " </div>"
|
2018-01-13 05:20:52 +02:00
|
|
|
printf "\\n"
|
2017-04-27 01:54:53 +02:00
|
|
|
} >> "$output_cheat_sheet_file"
|
|
|
|
|
|
|
|
done
|
|
|
|
|
2022-09-11 18:41:34 +02:00
|
|
|
cat "$cheat_sheet_foot_file" >> "$output_cheat_sheet_file"
|
|
|
|
|
|
|
|
printf "Generated CSS and Cheat Sheet HTML\\n"
|