Svg-icons containing library for Moon Design System
Add to your mix.exs
def deps do
[
{:moon_icons, git: "git@github.com:coingaming/moon-icons.git", branch: "main"}
]
end
Than add folowing to your enpoint.ex
plug Plug.Static,
at: "/moon_icons/",
from: :moon_icons,
gzip: true,
cache_control_for_etags: "public, max-age=86400"
To check run your app and open e.g. http://localhost:<your_port_here>/moon_icons/icons_new/controls-chevron-up.svg
For development purposes (e.g running bin/icons-importer.ts)
asdf install
npm i -g ts-node
Now, for icons importing (from /svg folder)
rm priv/static/svgs/icons_new/*.svg
cp ../moon-icons-react/svg/*.svg priv/static/svgs/icons_new/
cd priv/static/svgs/icons_new/
# linux
# for file in ./* ; do mv "$file" "$(echo $file|sed -e 's/\([A-Z]\)/_\L\1/g' -e 's/^.\/_//')" ; done
# macos
for file in ./*.svg ; do mv "$file" "$(echo $file | sed 's/[[:upper:]]/-&/g;s/^-//' | tr '[:upper:]' '[:lower:]' | sed -e 's/^.\/-//')" ; done
cd -
rm lib_ex/moon/icons/*.ex
ts-node bin/icons-importer.ts # please note should be runned in two modes
ts-node bin/icons-importer.ts