@heroiclands/fonts 0.2.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -227
- package/charts/helonika-book/chart-1.png +0 -0
- package/charts/helonika-book/chart-1.svg +474 -0
- package/charts/helonika-book/glyphs/U+F0300.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0301.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0302.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0303.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0304.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0305.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0306.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0307.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0308.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0309.svg +4 -0
- package/charts/helonika-book/glyphs/U+F030A.svg +4 -0
- package/charts/helonika-book/glyphs/U+F030B.svg +4 -0
- package/charts/helonika-book/glyphs/U+F030C.svg +4 -0
- package/charts/helonika-book/glyphs/U+F030D.svg +4 -0
- package/charts/helonika-book/glyphs/U+F030E.svg +4 -0
- package/charts/helonika-book/glyphs/U+F030F.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0310.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0311.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0312.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0313.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0314.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0315.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0316.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0317.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0318.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0319.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0320.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0321.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0322.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0330.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0331.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0332.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0333.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0334.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0335.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0336.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0337.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0338.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0339.svg +4 -0
- package/charts/helonika-book/glyphs/U+F033A.svg +4 -0
- package/charts/helonika-book/glyphs/U+F033B.svg +4 -0
- package/charts/helonika-book/glyphs/U+F033C.svg +4 -0
- package/charts/helonika-book/glyphs/U+F033D.svg +4 -0
- package/charts/helonika-book/glyphs/U+F033E.svg +4 -0
- package/charts/helonika-book/glyphs/U+F033F.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0340.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0341.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0342.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0343.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0344.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0345.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0346.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0347.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0348.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0349.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0350.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0351.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0352.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0360.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0361.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0362.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0363.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0364.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0365.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0366.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0367.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0368.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0369.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0370.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0371.svg +4 -0
- package/charts/helonika-book/glyphs/U+F0378.svg +4 -0
- package/charts/helonika-book.md +100 -0
- package/charts/index.md +4 -1
- package/charts/thuravark-carved/chart-1.png +0 -0
- package/charts/thuravark-carved/chart-1.svg +64 -26
- package/charts/thuravark-carved/glyphs/U+F0128.svg +4 -0
- package/charts/thuravark-carved/glyphs/U+F0129.svg +4 -0
- package/charts/thuravark-carved/glyphs/U+F012A.svg +4 -0
- package/charts/thuravark-carved/glyphs/U+F0150.svg +4 -0
- package/charts/thuravark-carved/glyphs/U+F0151.svg +4 -0
- package/charts/thuravark-carved-bound/chart-1.png +0 -0
- package/charts/thuravark-carved-bound/chart-1.svg +334 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0100.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0101.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0102.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0103.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0104.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0105.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0106.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0107.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0108.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0109.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F010A.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F010B.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F010C.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F010D.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F010E.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F010F.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0110.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0111.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0112.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0113.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0114.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0115.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0120.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0121.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0122.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0123.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0124.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0125.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0128.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0129.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F012A.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0130.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0131.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0132.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0133.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0134.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0135.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0136.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0137.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0138.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0139.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0140.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0148.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0150.svg +4 -0
- package/charts/thuravark-carved-bound/glyphs/U+F0151.svg +4 -0
- package/charts/thuravark-carved-bound.md +89 -0
- package/charts/thuravark-carved.md +16 -1
- package/charts/vedyakshara-classical/chart-1.png +0 -0
- package/charts/vedyakshara-classical/chart-1.svg +350 -0
- package/charts/vedyakshara-classical/glyphs/U+F0400.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0401.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0402.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0403.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0404.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0405.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0406.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0407.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0408.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0409.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F040A.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F040B.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F040C.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F040D.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F040E.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F040F.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0410.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0411.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0412.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0413.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0414.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0415.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0420.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0421.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0422.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0423.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0424.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0425.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0426.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0430.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0431.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0432.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0433.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0434.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0435.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0438.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0439.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0440.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0441.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0442.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0443.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0444.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0445.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0446.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0447.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0448.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0449.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0450.svg +4 -0
- package/charts/vedyakshara-classical/glyphs/U+F0451.svg +4 -0
- package/charts/vedyakshara-classical.md +78 -0
- package/fonts/HelonikaBook-Regular.ttf +0 -0
- package/fonts/HelonikaBook-Regular.woff2 +0 -0
- package/fonts/ThuravarkCarved-Regular.ttf +0 -0
- package/fonts/ThuravarkCarved-Regular.woff2 +0 -0
- package/fonts/VedyaksharaClassical-Regular.ttf +0 -0
- package/fonts/VedyaksharaClassical-Regular.woff2 +0 -0
- package/fonts.css +32 -0
- package/fonts.json +3232 -2173
- package/keyboards/emacs/heroiclands-helonika.el +206 -0
- package/keyboards/emacs/heroiclands-thuravark.el +2 -2
- package/keyboards/emacs/heroiclands-vedyakshara.el +205 -0
- package/keyboards/emacs/heroiclands-veldikko.el +211 -0
- package/keyboards/helonika.md +258 -0
- package/keyboards/helonika.png +0 -0
- package/keyboards/helonika.svg +728 -0
- package/keyboards/index.md +319 -156
- package/keyboards/keyboard.png +0 -0
- package/keyboards/keyboard.svg +10 -2
- package/keyboards/linux/hl_helonika +58 -0
- package/keyboards/linux/hl_vedyakshara +58 -0
- package/keyboards/linux/hl_veldikko +58 -0
- package/keyboards/macos/HeroicLands.bundle/Contents/Info.plist +21 -0
- package/keyboards/macos/HeroicLands.bundle/Contents/Resources/HL Helonika.keylayout +392 -0
- package/keyboards/macos/HeroicLands.bundle/Contents/Resources/HL Vedyakshara.keylayout +363 -0
- package/keyboards/macos/HeroicLands.bundle/Contents/Resources/HL Veldikko.keylayout +378 -0
- package/keyboards/pirzath.md +191 -150
- package/keyboards/pirzath.png +0 -0
- package/keyboards/pirzath.svg +716 -0
- package/keyboards/qalezu.md +191 -150
- package/keyboards/qalezu.png +0 -0
- package/keyboards/qalezu.svg +468 -0
- package/keyboards/semaron.md +191 -150
- package/keyboards/semaron.png +0 -0
- package/keyboards/semaron.svg +700 -0
- package/keyboards/sounds.json +144 -144
- package/keyboards/thuravark.md +191 -150
- package/keyboards/thuravark.png +0 -0
- package/keyboards/thuravark.svg +686 -0
- package/keyboards/vedyakshara.md +243 -0
- package/keyboards/vedyakshara.png +0 -0
- package/keyboards/vedyakshara.svg +605 -0
- package/keyboards/veldikko.md +265 -0
- package/keyboards/veldikko.png +0 -0
- package/keyboards/veldikko.svg +674 -0
- package/keyboards/windows/helonika.klc +0 -0
- package/keyboards/windows/vedyakshara.klc +0 -0
- package/keyboards/windows/veldikko.klc +0 -0
- package/keyboards/zethu.md +353 -350
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,266 +1,109 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
These are the fonts for the [HeroicLands Thalorna](https://www.heroiclands.org/thalorna/) setting:
|
|
4
|
-
|
|
5
|
-
| Font | Description | Direction |
|
|
6
|
-
| --------------------- | --------------------------------------------------------- | ----------------------- |
|
|
7
|
-
| Pirzath Carved | Khazari (dwarven) runic lapidary | Left to right |
|
|
8
|
-
| Pirzath Hand | Khazari (dwarven) common hand, the modern script | Left to right |
|
|
9
|
-
| Thuravark Carved | Proto-Pelwar (human) runic lapidary, derived from Pirzath | Left to right |
|
|
10
|
-
| Semaron Kuriale | Vylarian (human) chancery hand | Left to right |
|
|
11
|
-
| Veldikko | Sinale (elvish) joined calligraphic hand | Right to left |
|
|
12
|
-
| Qalezu Hand | Au'Khelathu merchants' script | Right to left |
|
|
13
|
-
| Khelathi Zethu Glyphs | Au'Khelathu temple hieroglyphs | Right to left |
|
|
14
|
-
| Teng Chou | Tantsou (human) logographic script | Vertical, top to bottom |
|
|
15
|
-
|
|
16
|
-
**Download.** Every font is available as TrueType and WOFF2 from the [latest release](https://github.com/HeroicLands/fonts/releases/latest). Programs and sites take them from npm instead; see [Installing and using the fonts](#installing-and-using-the-fonts).
|
|
17
|
-
|
|
18
|
-
Each font draws only its own characters, on code points of its own, and anything else draws as an empty box. Roman text becomes a script through a keyboard layout or a mapping in the consuming build; see [Typing in the fonts](#typing-in-the-fonts).
|
|
19
|
-
|
|
20
|
-
## Code point blocks
|
|
21
|
-
|
|
22
|
-
Every script draws on a block of code points of its own, and every face of a script draws its script's block: Pirzath Carved, Pirzath Hand and Pirzath Hand Lifted share the Pirzath block, so changing the face changes only the look. The blocks are registered in `BLOCKS` in `tools/codepoint_order.py`; `tools/codepoints.py` checks that every face's code points lie in its registered blocks, that no two blocks overlap, and that this table is the registry's.
|
|
23
|
-
|
|
24
|
-
| Range | Use | Direction |
|
|
25
|
-
| ----------------- | --------------------------------------------------------------------------------------------------------- | ------------- |
|
|
26
|
-
| U+13430–U+1343F | Egyptian Hieroglyph Format Controls, Unicode's own: Khelathi Zethu Glyphs' quadrat and cartouche controls | left to right |
|
|
27
|
-
| U+1E960–U+1E9FF | Khelathi Zethu Glyphs, overflow beyond its main block | right to left |
|
|
28
|
-
| U+1EA00–U+1EA3F | Qalezu: signs, digits and punctuation | right to left |
|
|
29
|
-
| U+1EA40–U+1EC6F | Khelathi Zethu Glyphs: signs, and its format controls at U+1EC60–U+1EC6F | right to left |
|
|
30
|
-
| U+1ED50–U+1EDFF | Veldikko: letters, vowel marks and the signs of length, pitch, emphasis and doubling | right to left |
|
|
31
|
-
| U+F0000–U+F00FF | Pirzath | left to right |
|
|
32
|
-
| U+F0100–U+F01FF | Thuravark | left to right |
|
|
33
|
-
| U+F0200–U+F02FF | Semaron | left to right |
|
|
34
|
-
| U+F0300–U+F0FFF | Reserved for the remaining alphabets and syllabaries, 256 code points each as they are assigned | left to right |
|
|
35
|
-
| U+F1000–U+F1FFF | Teng Chou: characters, one per morpheme, in the order they are added | left to right |
|
|
36
|
-
| U+F2000–U+F20FF | Teng Chou: the Jurthati syllabary | left to right |
|
|
37
|
-
| U+F2100–U+F2FFF | Reserved for Teng Chou | left to right |
|
|
38
|
-
| U+100000–U+10FFFD | Plane 16, unassigned | – |
|
|
39
|
-
|
|
40
|
-
- **Left-to-right scripts** (Pirzath, Thuravark, Semaron) sit in plane 15, the Supplementary Private Use Area-A, whose characters are left to right by default. Each takes 256 code points. U+F0300 to U+F0FFF is reserved for the remaining alphabets and syllabaries, 256 code points each as they are assigned. Teng Chou takes U+F1000 to U+F2FFF: its characters from U+F1000, one per morpheme in the order they are added so that none is renumbered, its Jurthati syllabary from U+F2000, and the rest reserved. Teng Chou is written in columns; its characters are left to right where an inline span sets them along a line.
|
|
41
|
-
- **Right-to-left scripts** (Qalezu, Khelathi Zethu Glyphs and Veldikko) sit in unassigned code points of plane 1 whose default bidi class is right to left. That is why their text runs right to left in any editor, browser or typesetter, mixed with English and with no controls. Because the code points are unassigned rather than private, Unicode could in principle assign them to a script later. Qalezu takes U+1EA00 to U+1EA3F for its signs, doubled consonants, digits and punctuation. Khelathi Zethu Glyphs takes U+1EA40 to U+1EC6F with U+1E960 to U+1E9FF as overflow, 720 code points together. Veldikko takes U+1ED50 to U+1EDFF: its letters from U+1ED50, its vowel marks from U+1ED70 and its signs of length, pitch, emphasis and doubling from U+1ED78.
|
|
42
|
-
- **Plane 16** is unassigned.
|
|
1
|
+
# Fantasy script fonts
|
|
43
2
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
The fonts are licensed under the SIL Open Font License 1.1; see `LICENSE`. Under it they may be embedded in web pages, documents and books, and bundled with software, without that work taking on the font's licence.
|
|
47
|
-
|
|
48
|
-
## Installing and using the fonts
|
|
49
|
-
|
|
50
|
-
The fonts are published to npm as `@heroiclands/fonts`. The package holds each font as WOFF2 and TrueType, `fonts.css` with one `@font-face` rule and one `hl-<font>` class per family, `fonts.json`, the manifest of the families, `keyboards/`, the keyboard layouts, Emacs input methods and cheatsheets for typing in them, and `charts/`, the cheatsheet of each font.
|
|
51
|
-
|
|
52
|
-
```sh
|
|
53
|
-
npm install @heroiclands/fonts
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
**Web.** Import the stylesheet from a bundler or a stylesheet, or link it:
|
|
57
|
-
|
|
58
|
-
```css
|
|
59
|
-
@import "@heroiclands/fonts/fonts.css";
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
```html
|
|
63
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@heroiclands/fonts@0/fonts.css" />
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
The jsDelivr form is `https://cdn.jsdelivr.net/npm/@heroiclands/fonts@<version>/<file>`. `@0` follows the newest 0.x release, and a full version pins one. A rule's URLs are relative, so every file resolves beside the stylesheet. A family is named by its font-family, such as `font-family: "Pirzath Carved"`.
|
|
3
|
+
Open-source fonts for invented writing systems, free to use in your own campaign, game, book or website. They were built for the [HeroicLands Thalorna](https://www.heroiclands.org/thalorna/) setting, and anyone may use them.
|
|
67
4
|
|
|
68
|
-
|
|
5
|
+
| Font | What it is | Direction | Sample | Keyboard |
|
|
6
|
+
| --------------------- | ----------------------------------------------------------------------------------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ |
|
|
7
|
+
| Pirzath Carved | Khazari (dwarven) runic lapidary | Left to right | [](specimens/hl-pirzath-carved.md) | [HL Pirzath](keyboards/pirzath.md) |
|
|
8
|
+
| Pirzath Hand | Khazari (dwarven) common hand, the modern script | Left to right | [](specimens/hl-pirzath-hand.md) | [HL Pirzath](keyboards/pirzath.md) |
|
|
9
|
+
| Thuravark Carved | Proto-Pelwar (human) runic lapidary, derived from Pirzath, with the Tharavarkon recension | Left to right | [](specimens/hl-thuravark-carved.md) | [HL Thuravark](keyboards/thuravark.md) |
|
|
10
|
+
| Semaron Kuriale | Vylarian (human) chancery hand | Left to right | [](specimens/hl-semaron-kuriale.md) | [HL Semaron](keyboards/semaron.md) |
|
|
11
|
+
| Helonika Book | Helonic (human) book hand, geometric capitals over a round minuscule | Left to right | [](specimens/hl-helonika-book.md) | [HL Helónika](keyboards/helonika.md) |
|
|
12
|
+
| Vedyakshara Classical | Vedyari (human) temple syllabary, hung from a headline | Left to right | [](specimens/hl-vedyakshara-classical.md) | [HL Vedyakshara](keyboards/vedyakshara.md) |
|
|
13
|
+
| Veldikko | Sinale (elvish) joined calligraphic hand | Right to left | [](specimens/hl-veldikko.md) | [HL Veldikko](keyboards/veldikko.md) |
|
|
14
|
+
| Qalezu Hand | Au'Khelathu merchants' script | Right to left | [](specimens/hl-qalezu-hand.md) | [HL Qalezu](keyboards/qalezu.md) |
|
|
15
|
+
| Khelathi Zethu Glyphs | Au'Khelathu temple hieroglyphs | Right to left | [](specimens/hl-khelathi-zethu-glyphs.md) | none: [use the chart](charts/khelathi-zethu-glyphs.md) |
|
|
16
|
+
| Teng Chou | Tantsou (human) logographic script | Vertical, top to bottom | [](specimens/hl-teng-chou.md) | none: [use the chart](charts/teng-chou.md) |
|
|
69
17
|
|
|
70
|
-
|
|
71
|
-
CONFIG.fontDefinitions["Pirzath Carved"] = {
|
|
72
|
-
editor: true,
|
|
73
|
-
fonts: [{ urls: ["modules/<module id>/fonts/PirzathCarved-Regular.woff2"] }],
|
|
74
|
-
};
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
**Typst.** Point the compiler's font path at the package's `fonts/` folder, and name the family in `#set text(font: "Qalezu Hand")`:
|
|
78
|
-
|
|
79
|
-
```sh
|
|
80
|
-
typst compile --font-path node_modules/@heroiclands/fonts/fonts book.typ
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
`fonts.json` states, for each entry, its `name` (unique across the manifest), its `family` (the font-family), its `hl-<font>` class, its `files`, its `direction`, its OpenType `features` and its `codepoints`: every character the font draws, each with its code point, character name where the script's name table gives one, glyph name and kind, and for a sign of Khelathi Zethu Glyphs the sign id that types it; that font's format controls are of kind `control`. The class sets the family's `font-family`, `font-feature-settings` and, for a right-to-left family, `direction`. Pirzath Hand's joined form needs `ss01`, which its class turns on; Pirzath Hand Lifted is the same font with `ss01` turned off.
|
|
84
|
-
|
|
85
|
-
A note's text in one of these fonts is the font's own code points. They are typed with the keyboard layouts in `keyboards/`, or produced by a mapping in the consuming build.
|
|
86
|
-
|
|
87
|
-
The fonts are licensed under the SIL Open Font License 1.1, which `LICENSE` carries in the package.
|
|
88
|
-
|
|
89
|
-
**Veldikko.** It is the starlight-hand of the Sinale, in which both the Sinale and the Áelendi write: a flowing calligraphy written right to left, its letters joined by hairlines along the line and its vowel marks floating above, in one face for both tongues. It is written on code points of its own, U+1ED50 to U+1EDFF: a letter, then the length bar if the consonant is doubled, then each vowel mark, each followed by its signs of length, pitch and emphasis. The font joins each letter to its neighbours, folds a vowel and its signs into one mark and stands the marks over their letter. Its bowls stand at the x-height Semaron Kuriale and Latin text stand at, and its risers and tails reach well beyond, so a block of Veldikko wants a line height of about 2.4 em from the page's style sheet; a Veldikko word inside an English line leaves the line spacing even. `tools/veldikko/encoding.json` is the one table of what each code point is, and `tools/veldikko/convert.mjs` turns romanized Sinale into those code points; `design/veldikko.md` gives the system.
|
|
18
|
+
Each font draws only its own characters, on code points of its own, so ordinary English text typed in one shows empty boxes. You type in a script with its keyboard layout, or insert characters by code point from the font's chart.
|
|
90
19
|
|
|
91
|
-
##
|
|
20
|
+
## Download
|
|
92
21
|
|
|
93
|
-
|
|
22
|
+
Every font is a TrueType file (`.ttf`, for documents and desktop apps) and a WOFF2 file (`.woff2`, for websites). Download them from the [latest release](https://github.com/HeroicLands/fonts/releases/latest), which also holds `keyboards.zip` (the keyboard layouts for every platform and their cheatsheets) and `charts.zip` (the character charts). Unzip both into one folder so the cheatsheets find their charts. Programs can take everything from npm instead; see [For programs](#for-programs).
|
|
94
23
|
|
|
95
|
-
|
|
24
|
+
## Install a font
|
|
96
25
|
|
|
97
|
-
|
|
26
|
+
Install the `.ttf` file. Close and reopen a program that was running, so it sees the new font.
|
|
98
27
|
|
|
99
|
-
**
|
|
28
|
+
- **macOS.** Double-click the `.ttf`, then choose Install Font in the Font Book window.
|
|
29
|
+
- **Windows.** Right-click the `.ttf` and choose Install, or Install for all users.
|
|
30
|
+
- **Linux.** Copy the `.ttf` to `~/.local/share/fonts/`, then run `fc-cache -f`.
|
|
100
31
|
|
|
101
|
-
|
|
32
|
+
## Use a font in a document
|
|
102
33
|
|
|
103
|
-
|
|
104
|
-
node tools/sounds.mjs --thalorna ~/dev/HeroicLands/thalorna --write
|
|
105
|
-
.venv/bin/python tools/keyboards.py
|
|
106
|
-
```
|
|
34
|
+
Choose the font by its name, such as `Pirzath Carved`, in the font box of your word processor.
|
|
107
35
|
|
|
108
|
-
|
|
36
|
+
- **Microsoft Word, LibreOffice Writer and Apple Pages** use an installed font directly. Word, LibreOffice and Pages all shape OpenType text, which the joined scripts need: Veldikko's letters join along the line and its vowel marks stand over them only in an app that shapes text this way.
|
|
37
|
+
- **Web apps such as Google Docs cannot use a font installed on your computer.** Use a desktop app, or put the text in a picture.
|
|
38
|
+
- **Right-to-left scripts** (Veldikko, Qalezu Hand and Khelathi Zethu Glyphs) run right to left on their own, mixed with English, with no setting to change.
|
|
39
|
+
- **Veldikko** has tall risers and long tails. Set its paragraphs to a line height of about 2.4 times the font size so lines do not collide.
|
|
40
|
+
- **Pirzath Hand and Thuravark Carved** each have an optional form, the OpenType stylistic set `ss01`. Turned on, Pirzath Hand draws a joining line under its letters and Thuravark Carved binds common pairs of staves onto one stem. In LibreOffice, write the font name as `Pirzath Hand:ss01` or `Thuravark Carved:ss01`.
|
|
41
|
+
- **Teng Chou** is written in columns. Set it as ordinary text on a line, or use your app's vertical text direction for columns.
|
|
109
42
|
|
|
110
|
-
|
|
43
|
+
## Type in a script
|
|
111
44
|
|
|
112
|
-
|
|
113
|
-
- **Windows layouts.** `keyboards/windows/<script>.klc` is the Microsoft Keyboard Layout Creator source of each layout, saved as UTF-16 with a byte order mark. Option is the right Alt key (AltGr). Every output is a ligature entry, a character of plane 1 or plane 15 written as its surrogate pair. MSKLC builds the installer on Windows only: open the `.klc` in Microsoft Keyboard Layout Creator, choose Project, Build DLL and Setup Package, and run the `setup.exe` it writes. Then add the layout under Settings, Time & language, Language & region, English (United States), Keyboard.
|
|
114
|
-
- **Linux layouts.** `keyboards/linux/hl_<script>` is an XKB symbols file for each layout, with a `U<hex>` keysym on every key that types one character and `VoidSymbol` on the rest. Option is the third level, reached with the right Alt key. Copy the files to `~/.config/xkb/symbols/`, then run `setxkbmap -I$HOME/.config/xkb -layout hl_pirzath` under X11; a desktop that reads `~/.config/xkb` lists them as custom layouts. `setxkbmap us` returns to the usual layout.
|
|
115
|
-
- **Emacs input methods.** `keyboards/emacs/heroiclands-<script>.el` defines a Quail input method per layout. Put the directory on `load-path`, evaluate `(require 'heroiclands-semaron)`, then `M-x set-input-method RET heroiclands-semaron`. Shift is the shifted character. Emacs has no Option key, so Option+x is typed `\` and then the key x types: Option+T is `\t` and Option+Shift+T is `\T`.
|
|
116
|
-
- **Teng Chou.** Teng Chou writes one character per morpheme and has no keyboard layout: its characters and signs are typed by code point, or written by a mapping in the consuming build. `charts/teng-chou.md` lists every code point with its morpheme or syllable.
|
|
117
|
-
- **Veldikko.** The Veldikko has no keyboard layout: its letters, vowel marks and signs are typed by code point, or written from romanized Sinale by a mapping in the consuming build. `charts/veldikko.md` lists every code point with its name.
|
|
118
|
-
- **Khelathi Zethu Glyphs.** Zethu writes meanings, not sounds, and has far more signs than a keyboard has keys, so it has an Emacs input method only, `heroiclands-zethu`, typed by sign id: `08-001` inserts that sign. `keyboards/zethu.md` lists the ids. The format controls have no key: a mapping in the consuming build writes them.
|
|
45
|
+
Eight of the fonts have a keyboard layout that types by sound. You press the key for the sound, and the layout types the script's character for it: `t` types the script's t, Option+T types its th, and Shift makes a capital. Each layout is a standard US keyboard underneath, so the roman letters are the ones printed on the keys. **Option** is the Option key on a Mac and the **AltGr** key on Windows and Linux (the right Alt key; on a keyboard without one, hold Ctrl and Alt together).
|
|
119
46
|
|
|
120
|
-
|
|
47
|
+
Every layout has a printable cheatsheet with a picture of the keyboard and a table of every key:
|
|
121
48
|
|
|
122
|
-
|
|
49
|
+
| Layout | Types | Cheatsheet |
|
|
50
|
+
| -------------- | ---------------------------- | ---------------------------------------------------- |
|
|
51
|
+
| HL Pirzath | Pirzath Carved, Pirzath Hand | [keyboards/pirzath.md](keyboards/pirzath.md) |
|
|
52
|
+
| HL Thuravark | Thuravark Carved | [keyboards/thuravark.md](keyboards/thuravark.md) |
|
|
53
|
+
| HL Semaron | Semaron Kuriale | [keyboards/semaron.md](keyboards/semaron.md) |
|
|
54
|
+
| HL Helónika | Helonika Book | [keyboards/helonika.md](keyboards/helonika.md) |
|
|
55
|
+
| HL Vedyakshara | Vedyakshara Classical | [keyboards/vedyakshara.md](keyboards/vedyakshara.md) |
|
|
56
|
+
| HL Veldikko | Veldikko | [keyboards/veldikko.md](keyboards/veldikko.md) |
|
|
57
|
+
| HL Qalezu | Qalezu Hand | [keyboards/qalezu.md](keyboards/qalezu.md) |
|
|
123
58
|
|
|
124
|
-
|
|
125
|
-
- **A table** of Character Name, Character, Code Point (`U+05DC`), Entity (`ל`) and Hex Entity (`ל`), in code point order and grouped by kind.
|
|
59
|
+
[keyboards/index.md](keyboards/index.md) draws the keys they share. Install a layout, switch to it, and set the text's font to the matching font.
|
|
126
60
|
|
|
127
|
-
|
|
61
|
+
### Installing a keyboard layout
|
|
128
62
|
|
|
129
|
-
|
|
63
|
+
- **macOS.** Copy the `keyboards/macos/HeroicLands.bundle` folder to `~/Library/Keyboard Layouts/` (in Finder, choose Go, Go to Folder, and paste the path). Log out and back in. Open System Settings, Keyboard, Text Input, Input Sources, press the add button and look under English for the `HL` layouts. Switch layouts from the menu bar. Command and Control shortcuts keep working.
|
|
64
|
+
- **Windows.** Each layout is a source file, `keyboards/windows/<layout>.klc`, for Microsoft Keyboard Layout Creator, which builds the installer on Windows only. Install that free tool, open the `.klc` file in it, choose Project, then Build DLL and Setup Package, and run the `setup.exe` it writes. Then add the layout under Settings, Time & language, Language & region, English (United States), Keyboard. Switch layouts with Windows key+Space.
|
|
65
|
+
- **Linux.** Each layout is an XKB symbols file, `keyboards/linux/hl_<layout>`. Copy the files to `~/.config/xkb/symbols/`. Under X11 run `setxkbmap -I$HOME/.config/xkb -layout hl_pirzath` (substitute the layout); a desktop that reads `~/.config/xkb` lists them as custom layouts. `setxkbmap us` returns to the usual layout.
|
|
66
|
+
- **Emacs.** `keyboards/emacs/heroiclands-<layout>.el` is an input method. Put the folder on `load-path`, evaluate `(require 'heroiclands-pirzath)`, then run `M-x set-input-method` and name `heroiclands-pirzath`. Emacs has no Option key, so Option+T is typed as a backslash and then `t`.
|
|
130
67
|
|
|
131
|
-
|
|
68
|
+
A few sounds are written with more characters than a Windows key (four UTF-16 code units) or a Linux key (one character) can hold. Those keys type nothing on that platform, and each cheatsheet lists them. macOS and Emacs type everything.
|
|
132
69
|
|
|
133
|
-
|
|
134
|
-
npm ci
|
|
135
|
-
```
|
|
70
|
+
### Fonts without a keyboard
|
|
136
71
|
|
|
137
|
-
|
|
72
|
+
Teng Chou writes one character for each word or syllable, and Khelathi Zethu Glyphs has hundreds of pictorial signs, far more than a keyboard has keys. Open the font's chart ([Teng Chou](charts/teng-chou.md), [Khelathi Zethu Glyphs](charts/khelathi-zethu-glyphs.md)), find the character, and insert it by its code point, such as `U+1EA41`:
|
|
138
73
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
The source of each font is a UFO under `sources/`: `PirzathCarved.ufo`, `PirzathHand.ufo`, `ThuravarkCarved.ufo`, `QalezuHand.ufo`, `KhelathiZethuGlyphs.ufo`, `SemaronKuriale.ufo`, `TengChou.ufo` and `Veldikko.ufo`. Open one in FontForge, Glyphs or RoboFont to edit it. `TengChou.ufo` is generated from its data by `tools/teng-chou/build_ufo.py`: an edit to a Teng Chou character belongs in `tools/teng-chou/`, and the script is run after it, before the build. `Veldikko.ufo` is generated the same way by `tools/veldikko/build_ufo.py`, from the letters and the joining in `tools/veldikko/`. The UFO carries the outlines, the character map, the metrics and `features.fea`, which holds every OpenType feature. Every glyph's advance is its ink width plus one sidebearing a side, the same across its face; `tools/respace.py` sets a UFO to that rule, and `design/making-fonts.md` gives each face's sidebearing.
|
|
74
|
+
- **Word on Windows, and LibreOffice:** type the hex digits (`1EA41`) with the cursor after them and press Alt+X. The digits become the character.
|
|
75
|
+
- **macOS:** choose Edit, Emoji & Symbols to open the Character Viewer, search for the code point, and double-click the character. The Unicode Hex Input source also types a code point with Option and four hex digits.
|
|
76
|
+
- **Linux:** press Ctrl+Shift+U, type the hex digits, and press Enter.
|
|
77
|
+
- **Emacs:** `M-x set-input-method` with `heroiclands-zethu` types a Khelathi Zethu sign from its sign id, such as `08-001`; see [keyboards/zethu.md](keyboards/zethu.md).
|
|
145
78
|
|
|
146
|
-
|
|
79
|
+
Set the character's font to the matching font, or it shows as an empty box. Each chart lists every character with its code point and name.
|
|
147
80
|
|
|
148
|
-
|
|
149
|
-
PATH=.venv/bin:$PATH ./build.sh
|
|
150
|
-
```
|
|
81
|
+
## For programs
|
|
151
82
|
|
|
152
|
-
|
|
83
|
+
The fonts are on npm as `@heroiclands/fonts`, with the font files, `fonts.css`, the `fonts.json` manifest, the keyboards and the charts:
|
|
153
84
|
|
|
154
85
|
```sh
|
|
155
|
-
|
|
156
|
-
fontmake -u sources/PirzathCarved.ufo -o ttf --keep-overlaps --no-production-names \
|
|
157
|
-
--output-path fonts/PirzathCarved-Regular.ttf
|
|
158
|
-
fonttools ttLib.woff2 compress -o fonts/PirzathCarved-Regular.woff2 fonts/PirzathCarved-Regular.ttf
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
Check the package holds exactly what it should, and that the formatting is clean:
|
|
162
|
-
|
|
163
|
-
```sh
|
|
164
|
-
npm run check:package
|
|
165
|
-
npm run format:check
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
Check the built fonts, render the specimens, and prove that each guard fails a broken font:
|
|
169
|
-
|
|
170
|
-
```sh
|
|
171
|
-
.venv/bin/python tools/pirzath/check_font.py
|
|
172
|
-
.venv/bin/python tools/pirzath-hand/check_font.py
|
|
173
|
-
.venv/bin/python tools/thuravark-carved/check_font.py
|
|
174
|
-
.venv/bin/python tools/qalezu-hand/check_font.py
|
|
175
|
-
.venv/bin/python tools/khelathi-zethu-glyphs/check_font.py
|
|
176
|
-
.venv/bin/python tools/semaron-kuriale/check_font.py
|
|
177
|
-
.venv/bin/python tools/teng-chou/check_font.py
|
|
178
|
-
.venv/bin/python tools/veldikko/check_font.py
|
|
179
|
-
.venv/bin/python tools/veldikko/guard.py --fixtures-only # the converter's fixtures join and carry their marks
|
|
180
|
-
.venv/bin/python tools/pirzath/guard.py --fixtures-only # each lexicon guard's fixtures, written as tools/mapped.json records them
|
|
181
|
-
.venv/bin/python tools/pirzath-hand/guard.py --fixtures-only
|
|
182
|
-
.venv/bin/python tools/thuravark-carved/guard.py --fixtures-only
|
|
183
|
-
.venv/bin/python tools/qalezu-hand/guard.py --fixtures-only
|
|
184
|
-
.venv/bin/python tools/semaron-kuriale/guard.py --fixtures-only
|
|
185
|
-
.venv/bin/python tools/teng-chou/syllabary_distinct.py # the Jurthati signs stay distinct at body size
|
|
186
|
-
.venv/bin/python tools/teng-chou/stroke_mix.py # every character's body is strokes, dabs a minority
|
|
187
|
-
.venv/bin/python tools/notdef_box.py
|
|
188
|
-
.venv/bin/python tools/vertical.py
|
|
189
|
-
.venv/bin/python tools/spacing.py # every face is set at a natural spacing; --report prints the measures
|
|
190
|
-
.venv/bin/python tools/font_names.py
|
|
191
|
-
.venv/bin/python tools/codepoints.py # each face draws its own code points and states no spelling
|
|
192
|
-
.venv/bin/python tools/keyboards_guard.py --fixtures-only # the layouts type each sound's output, and nothing else
|
|
193
|
-
.venv/bin/python tools/charts_guard.py # every character is on its sheet; unnamed rows are listed
|
|
194
|
-
.venv/bin/python tools/khelathi-zethu-glyphs/quadrats.py # quadrats and cartouches land where the layout puts them
|
|
195
|
-
.venv/bin/python tools/codepoints_chart.py # specimens/<face>/codepoints.png
|
|
196
|
-
.venv/bin/python tools/pirzath/specimens.py # specimens/pirzath/
|
|
197
|
-
.venv/bin/python tools/pirzath-hand/specimens.py # specimens/pirzath-hand/
|
|
198
|
-
.venv/bin/python tools/thuravark-carved/specimens.py # specimens/thuravark-carved/
|
|
199
|
-
.venv/bin/python tools/qalezu-hand/specimens.py # specimens/qalezu-hand/
|
|
200
|
-
.venv/bin/python tools/khelathi-zethu-glyphs/specimens.py # specimens/khelathi-zethu-glyphs/
|
|
201
|
-
.venv/bin/python tools/khelathi-zethu-glyphs/paint_guard.py # every drawn sign has a paint map
|
|
202
|
-
.venv/bin/python tools/semaron-kuriale/specimens.py # specimens/semaron-kuriale/
|
|
203
|
-
.venv/bin/python tools/teng-chou/character_specimens.py # specimens/teng-chou/characters.png
|
|
204
|
-
.venv/bin/python tools/teng-chou/character_specimens.py --name syllabary.png
|
|
205
|
-
.venv/bin/python tools/teng-chou/text_specimen.py # specimens/teng-chou/text.png, text-vertical.png and tally.png
|
|
206
|
-
.venv/bin/python tools/veldikko/font_sheets.py # specimens/veldikko/forms.png, joined.png, verse.png, sizes.png and beside.png
|
|
207
|
-
.venv/bin/python tools/prove_guards.py
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
`tools/codepoints.py` is the code-point guard. Every face, shaped from its own code points, must yield exactly the glyphs `fonts.json` lists for them, and its cmap may map nothing else but the space (U+0020 and U+00A0), the default-ignorables and the box, so every other code point, Latin included, prints the box. No substitution may write a character it did not read: a face's substitutions are its contextual forms and marks, never a spelling rule that turns one character into another. A few sequences that a spelling rule would rewrite, such as Pirzath's glide _y_ before a vowel pair and Semaron's _i_ twice, must shape as written.
|
|
211
|
-
|
|
212
|
-
Each lexicon guard shapes every form of its lexicon and asserts the font renders it rightly; the Pirzath guards read the Khazari lexicon, the Thuravark guard the Nordmal one, Semaron Kuriale's the Vylari one, Qalezu's the Khelathi one, Teng Chou's the Tantsou one (each form cut into morphemes and set one character to each, along a line and down a column), and Veldikko's converts the Sinale lexicon through `tools/veldikko/convert.mjs` and asserts each letter's form and where each mark stands. The Semaron, Pirzath, Thuravark and Qalezu guards first write each form in the script's code points by its mapping note on thalorna's `origin/main` (`assets/content/Lore/Scripts/<Script>_Spelling.md`), with package-build's own mapping rules, through `tools/mapping.mjs` under `node`; `--map-note FILE` reads the note from a file instead. Each reads its lexicon from the `origin/main` of a local thalorna checkout, `~/dev/HeroicLands/thalorna` by default:
|
|
213
|
-
|
|
214
|
-
```sh
|
|
215
|
-
.venv/bin/python tools/pirzath/guard.py --thalorna /path/to/thalorna
|
|
216
|
-
.venv/bin/python tools/pirzath-hand/guard.py --thalorna /path/to/thalorna
|
|
217
|
-
.venv/bin/python tools/thuravark-carved/guard.py --thalorna /path/to/thalorna
|
|
218
|
-
.venv/bin/python tools/qalezu-hand/guard.py --thalorna /path/to/thalorna
|
|
219
|
-
.venv/bin/python tools/semaron-kuriale/guard.py --thalorna /path/to/thalorna
|
|
220
|
-
.venv/bin/python tools/teng-chou/guard.py --thalorna /path/to/thalorna
|
|
221
|
-
.venv/bin/python tools/veldikko/guard.py --thalorna /path/to/thalorna
|
|
222
|
-
```
|
|
223
|
-
|
|
224
|
-
The guards' fixtures, and the sample lines of the specimens that `tools/spacing.py` measures, are written once through the mapping notes into `tools/mapped.json`, so that `--fixtures-only`, `tools/prove_guards.py` and `tools/spacing.py` need no thalorna checkout. `tools/mapped.py` writes the file, and without `--write` checks it against thalorna's mapping notes and lists every text they now write differently:
|
|
225
|
-
|
|
226
|
-
```sh
|
|
227
|
-
.venv/bin/python tools/mapped.py --thalorna /path/to/thalorna --write
|
|
228
|
-
.venv/bin/python tools/mapped.py --thalorna /path/to/thalorna
|
|
86
|
+
npm install @heroiclands/fonts
|
|
229
87
|
```
|
|
230
88
|
|
|
231
|
-
|
|
89
|
+
On a web page, import the stylesheet and name a family:
|
|
232
90
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
```sh
|
|
236
|
-
.venv/bin/python tools/keyboards_guard.py --thalorna /path/to/thalorna
|
|
91
|
+
```css
|
|
92
|
+
@import "@heroiclands/fonts/fonts.css";
|
|
237
93
|
```
|
|
238
94
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
Khelathi Zethu Glyphs is the temple hieroglyphs of the Khelathi, on U+1EA40 to U+1EC6F and written right to left. Its guard reads no lexicon: it shapes the sample inscriptions kept in `tools/khelathi-zethu-glyphs/samples.json`.
|
|
242
|
-
|
|
243
|
-
```sh
|
|
244
|
-
.venv/bin/python tools/khelathi-zethu-glyphs/guard.py
|
|
95
|
+
```html
|
|
96
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@heroiclands/fonts@0/fonts.css" />
|
|
245
97
|
```
|
|
246
98
|
|
|
247
|
-
|
|
99
|
+
`@0` follows the newest 0.x release, and a full version pins one. A family is named by its font-family, such as `font-family: "Pirzath Carved"`, or by the `hl-<font>` class in `fonts.css`, which also turns on any OpenType feature the family needs and sets right-to-left families to run right to left.
|
|
248
100
|
|
|
249
|
-
|
|
250
|
-
.venv/bin/python tools/khelathi-zethu-glyphs/paint_guard.py
|
|
251
|
-
.venv/bin/python tools/khelathi-zethu-glyphs/paint.py
|
|
252
|
-
```
|
|
101
|
+
For Foundry VTT, Typst and the manifest's contents, see [DEVELOPING.md](DEVELOPING.md).
|
|
253
102
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
```html
|
|
257
|
-
<span class="hl-khelathi-zethu-glyphs">𞩁𞱠𞩂</span>
|
|
258
|
-
```
|
|
103
|
+
## Licence
|
|
259
104
|
|
|
260
|
-
|
|
105
|
+
The fonts are licensed under the SIL Open Font License 1.1; see `LICENSE`. Under it they may be used, embedded in web pages, documents and books, and bundled with software, without that work taking on the font's licence.
|
|
261
106
|
|
|
262
|
-
|
|
263
|
-
.venv/bin/python tools/khelathi-zethu-glyphs/quadrats.py
|
|
264
|
-
```
|
|
107
|
+
## Developing
|
|
265
108
|
|
|
266
|
-
|
|
109
|
+
To build the fonts, run the checks or add a font, see [DEVELOPING.md](DEVELOPING.md).
|
|
Binary file
|