#!/usr/bin/fontforge # Updates ./src/font/tabler-icons-subset.ttf font file # Requires one argument - filepath to complete tabler-icons.ttf file # Must be ran from the root of the repository (i.e. from the location of the script) # Icons on my website are just characters inside a special font. # That font is a subset of the "Tabler Icons" font, version 2.10.0, containing only the glyphs I use # https://github.com/tabler/tabler-icons # The way I do it is oystersauce's idea # https://stackoverflow.com/a/35754448/12036073 # Basically I select the icons I want, invert selection, then detach and remove # all other icons. # This is a FontForge script which automates the whole process. Open($1) Select("uea19") # arrow-left SelectMore("uea1f") # arrow-right SelectMore("uf7d6") # arrow-badge-down-filled SelectMore("uf7d9") # arrow-badge-up-filled SelectMore("uf1e2") # article SelectMore("uea66") # chevrons-up SelectMore("ueaa2") # file-text SelectMore("ued4e") # file-zip SelectMore("ueaaa") # folder-minus SelectMore("ueaab") # folder-plus SelectMore("ueade") # link SelectMore("uec41") # markdown SelectMore("ueafa") # movie SelectMore("ueb0a") # photo SelectMore("ueb70") # presentation SelectMore("ueb0e") # printer SelectInvert() DetachAndRemoveGlyphs() # # Move characters from PUA to established glyphs # This "makes" sure the character is useable even if font fails # Only done to functional characters # # arrow-left to ← leftwards arrow Select("uea19"); Cut(); Select("u2190"); Paste() # arrow-right to → rightwards arrow Select("uea1f"); Cut(); Select("u2192"); Paste() # arrow-badge-down-filled to ▼ black down-pointing triangle Select("uf7d6"); Cut(); Select("u25BC"); Paste() # arrow-badge-up-filled to ▲ black up-pointing triangle Select("uf7d9"); Cut(); Select("u25B2"); Paste() # article to ☲ trigram for fire Select("uf1e2"); Cut(); Select("u2632"); Paste() # chevrons-up to ︽ presentation form for vertical left double angle bracket Select("uea66"); Cut(); Select("uFE3D"); Paste() # folder-minus to - fullwidth hyphen-minus Select("ueaaa"); Cut(); Select("uFF0D"); Paste() # folder-plus to + fullwidth plus sign Select("ueaab"); Cut(); Select("uFF0B"); Paste() # link to § section sign Select("ueade"); Cut(); Select("u00A7"); Paste() # presentation to ⎚ clear screen Select("ueb70"); Cut(); Select("u239A"); Paste() # printer to ⎙ print screen symbol Select("ueb0e"); Cut(); Select("u2399"); Paste() Generate("./src/font/tabler-icons-subset.ttf")