mirror of
https://github.com/ryanoasis/nerd-fonts.git
synced 2024-12-13 17:18:37 +02:00
a67edd47dd
[why] The script just creates the 'database' or the cheat sheet, but the surrounding elements have to be added manually. We do not like 'manually'. [how] Take the current cheat sheet code and rip top and bottom off, to glue it to the generated 'database'. Also change the filename like the final file would be named. Well this is still not automated, but at least this is the first step in that direction. On the GH pages, there release and everyting is manual at the moment. Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
99 lines
2.6 KiB
Bash
Executable File
99 lines
2.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Nerd Fonts Version: 2.2.2
|
|
# Script Version: 1.2.0
|
|
# Generates CSS file for the font and cheat sheet code
|
|
|
|
# shellcheck disable=SC1091
|
|
source ./lib/i_all.sh
|
|
|
|
output_css_file="../../css/nerd-fonts-generated.css"
|
|
output_css_min_file="../../css/nerd-fonts-generated.min.css"
|
|
header_css_file="./data/css-header.txt"
|
|
header_css_min_file="./data/css-min-header.txt"
|
|
|
|
if [ ! -d "../../temp" ]; then
|
|
mkdir "../../temp"
|
|
fi
|
|
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"
|
|
|
|
LINE_PREFIX="# [Nerd Fonts] "
|
|
version="2.2.2"
|
|
|
|
# clear files
|
|
true > "$output_css_file" 2> /dev/null
|
|
true > "$output_css_min_file" 2> /dev/null
|
|
true > "$output_cheat_sheet_file" 2> /dev/null
|
|
|
|
# describe how the classes were established
|
|
{
|
|
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"
|
|
printf " */\\n"
|
|
} | tee "$output_css_min_file" >> "$output_css_file"
|
|
|
|
# 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"
|
|
|
|
cat "$cheat_sheet_head_file" > "$output_cheat_sheet_file"
|
|
|
|
echo;
|
|
|
|
# shellcheck disable=SC2154
|
|
# we know the '$i' is from the sourced file
|
|
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}"
|
|
|
|
#echo "$glyph_name"
|
|
#echo "$glyph_char"
|
|
#echo "$glyph_code"
|
|
#printf "%x" "'$glyph_char'"
|
|
|
|
# generate css rules
|
|
{
|
|
printf ".nf-%s:before {" "$glyph_name"
|
|
printf "\\n"
|
|
printf " content: \"\\%s\";" "$glyph_code"
|
|
printf "\\n"
|
|
printf "}"
|
|
printf "\\n"
|
|
} >> "$output_css_file"
|
|
|
|
# generate css min rules
|
|
{
|
|
printf ".nf-%s:before{content:\"\\%s\"}" "$glyph_name" "$glyph_code"
|
|
} >> "$output_css_min_file"
|
|
|
|
# generate HTML cheat sheet
|
|
{
|
|
printf " <div class=\"column\">"
|
|
printf "\\n"
|
|
printf " <div class=\"nf nf-%s center\"></div>" "$glyph_name"
|
|
printf "\\n"
|
|
printf " <div class=\"class-name\">nf-%s</div><div class=\"codepoint\">%s</div>" "$glyph_name" "$glyph_code"
|
|
printf "\\n"
|
|
printf " </div>"
|
|
printf "\\n"
|
|
} >> "$output_cheat_sheet_file"
|
|
|
|
done
|
|
|
|
cat "$cheat_sheet_foot_file" >> "$output_cheat_sheet_file"
|
|
|
|
printf "Generated CSS and Cheat Sheet HTML\\n"
|