Summary Files Commits Branches @commit @diff @stats
path: root / FontForge-helper.ff
blob: 6e7db9015de4bf82b2dbc6da03745055d7845000 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/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")