husayni.lfg /size: 8380 b    last modification: 2020-07-01 14:35
1local yes = "yes"
2
3local basics = {
4    analyze  = yes,
5    mode     = "node",
6    language = "dflt",
7    script   = "arab",
8}
9
10local analysis = {
11    ccmp = yes,
12    init = yes, medi = yes, fina = yes,
13}
14
15local regular = {
16   rlig = yes, calt = yes, salt = yes, anum = yes,
17   ss01 = yes, ss03 = yes, ss07 = yes, ss10 = yes, ss12 = yes, ss15 = yes, ss16 = yes,
18   ss19 = yes, ss24 = yes, ss25 = yes, ss26 = yes, ss27 = yes, ss31 = yes, ss34 = yes,
19   ss35 = yes, ss36 = yes, ss37 = yes, ss38 = yes, ss41 = yes, ss42 = yes, ss43 = yes,
20   ss55 = yes,
21   js16 = yes,
22}
23
24local positioning = {
25   kern = yes, curs = yes, mark = yes, mkmk = yes,
26}
27
28local minimal_stretching = {
29    js11 = yes, js03 = yes,
30}
31
32local medium_stretching = {
33    js12=yes, js05=yes,
34}
35
36local maximal_stretching= {
37    js13 = yes, js05 = yes, js09 = yes,
38}
39
40local wide_all = {
41    js11 = yes, js12 = yes, js13 = yes, js05 = yes, js09 = yes,
42}
43
44local shrink = {
45    flts = yes, js17 = yes, ss05 = yes, ss11 = yes, ss06 = yes, ss09 = yes,
46}
47
48local default = { -- we need to merge the typescript definition in here
49    basics, analysis, regular, positioning, -- xxxx = yes, yyyy = 2,
50}
51
52return {
53    name = "husayni",
54    version = "1.00",
55    comment = "Goodies that complement the Husayni font by Idris Samawi Hamid.",
56    author = "Idris Samawi Hamid and Hans Hagen",
57    featuresets = { -- here we don't have references to featuresets
58        default = {
59            default,
60        },
61        minimal_stretching = {
62            default, js11 = yes, js03 = yes,
63        },
64        medium_stretching = {
65            default, js12=yes, js05=yes,
66        },
67        maximal_stretching= {
68            default, js13 = yes, js05 = yes, js09 = yes,
69        },
70        wide_all = {
71            default, js11 = yes, js12 = yes, js13 = yes, js05 = yes, js09 = yes,
72        },
73        shrink = {
74            default, flts = yes, js17 = yes, ss05 = yes, ss11 = yes, ss06 = yes, ss09 = yes,
75        },
76    },
77    solutions = { -- here we have references to featuresets, so we use strings!
78        experimental = {
79            less = {
80                "shrink", -- we need an extra one
81            },
82            more = {
83                "minimal_stretching", "medium_stretching", "maximal_stretching", "wide_all"
84            },
85        },
86    },
87    stylistics = {
88        ss01 = "Allah, Muhammad",
89        ss02 = "ss01 + Allah_final",
90        ss03 = "level-1 stack over Jiim, initial entry only",
91        ss04 = "level-1 stack over Jiim, initial/medial entry",
92        ss05 = "multi-level Jiim stacking, initial/medial entry",
93        ss06 = "aesthetic Faa/Qaaf for FJ_mm, FJ_mf connection",
94        ss07 = "initial-entry stacking over Haa",
95        ss08 = "initial/medial stacking over Haa, minus HM_mf strings",
96        ss09 = "initial/medial Haa stacking plus HM_mf strings",
97        ss10 = "basic dipped Miim, initial-entry B_S-stack over Miim",
98        ss11 = "full dipped Miim, initial-entry B_S-stack over Miim",
99        ss12 = "XBM_im initial-medial entry B_S-stack over Miim",
100        ss13 = "full initial-medial entry B_S-stacked Miim",
101        ss14 = "initial entry, stacked Laam on Miim",
102        ss15 = "full stacked Laam-on-Miim",
103        ss16 = "initial entry, stacked Ayn-on-Miim",
104        ss17 = "full stacked Ayn-on-Miim",
105        ss18 = "LMJ_im already contained in ss03--05, may remove",
106        ss19 = "LM_im",
107        ss20 = "KLM_m, sloped Miim",
108        ss21 = "KLM_i_mm/LM_mm, sloped Miim",
109        ss22 = "filled sloped Miim",
110        ss23 = "LM_mm, non-sloped Miim",
111        ss24 = "BR_i_mf, BN_i_mf",
112        ss25 = "basic LH_im might merge with ss24",
113        ss26 = "full Yaa.final special strings: BY_if, BY_mf, LY_mf",
114        ss27 = "basic thin Miim.final",
115        ss28 = "full thin Miim.final to be moved to jsnn",
116        ss29 = "basic short Miim.final",
117        ss30 = "full short Miim.final to be moved to jsnn",
118        ss31 = "basic Raa.final strings: JR and SR",
119        ss32 = "basic Raa.final strings: JR, SR, and BR",
120        ss33 = "TtR to be moved to jsnn",
121        ss34 = "AyR style also available in jsnn",
122        ss35 = "full Kaaf contexts",
123        ss36 = "full Laam contexts",
124        ss37 = "Miim-Miim contexts",
125        ss38 = "basic dipped Haa, B_SH_mm",
126        ss39 = "full dipped Haa,  B_S_LH_i_mm_Mf",
127        ss40 = "aesthetic dipped medial Haa",
128        ss41 = "high and low Baa strings",
129        ss42 = "diagonal entry",
130        ss43 = "initial alternates",
131        ss44 = "hooked final alif",
132        ss45 = "BMA_f",
133        ss46 = "BM_mm_alt, for JBM combinations",
134        ss47 = "Shaddah-<kasrah> combo",
135        ss48 = "Auto-sukuun",
136        ss49 = "No vowels",
137        ss50 = "Shaddah/MaaddahHamzah only",
138        ss51 = "No Skuun",
139        ss52 = "No Waslah",
140        ss53 = "No Waslah",
141        ss54 = "chopped finals",
142        ss55 = "idgham-tanwin",
143        js01 = "Raawide",
144        js02 = "Yaawide",
145        js03 = "Kaafwide",
146        js04 = "Nuunwide",
147        js05 = "Kaafwide Nuunwide Siinwide Baawide",
148        js06 = "final Haa wide",
149        js07 = "thin Miim",
150        js08 = "short Miim",
151        js09 = "wide Siin",
152        js10 = "thuluth-style initial Haa, final Miim, MRw_mf",
153        js11 = "level-1 stretching",
154        js12 = "level-2 stretching",
155        js13 = "level-3 stretching",
156        js14 = "final Alif",
157        js15 = "hooked final Alif",
158        js16 = "aesthetic medial Faa/Qaaf",
159        js17 = "fancy isol Haa after Daal, Raa, and Waaw",
160        js18 = "Laamwide, alternate substitution",
161        js19 = "level-4 stretching, only siin and Hhaa for basmalah",
162        js20 = "level-5 stretching, only siin and Hhaa for basmalah",
163        js21 = "Haa.final_alt2",
164    },
165    colorschemes = {
166        default = {
167            [1] = {
168                "Onedotabove", "Onedotbelow", "Twodotsabove", "Twodotsbelow", "Threedotsabove", "Twodotsabove.vrt",
169                "Twodotsbelow.vrt", "Twodotsabove.KBA", "Threedotsabove.KBA", "Threedotsbelowinv", "Hamzahabove",
170                "Hamzahbelow", "MaaddahHamzah.identity", "Waslah", "Hamzah.initial_medial",
171            },
172            [2] = {
173                "Fathah", "Dammah", "Kasrah", "FathahVertical", "DammahInverted", "KasrahVertical",
174                "FathahVertical.alt1", "KasrahVertical.alt1", "FathahTanwiin", "DammahTanwiin", "KasrahTanwiin",
175                "Shaddah", "Sukuun", "MaaddahHamzah", "Jazm", "Maaddah", "DammahTanwiin_alt2", "DammahTanwiin_alt1",
176                "FathahTanwiin_alt1",  "KasrahTanwiin_alt1", "Fathah.mkmk", "Dammah.mkmk", "Kasrah.mkmk",
177                "FathahVertical.mkmk", "DammahInverted.mkmk", "KasrahVertical.mkmk", "FathahTanwiin.mkmk",
178                "DammahTanwiin.mkmk", "KasrahTanwiin.mkmk", "DammahTanwiin_alt1.mkmk", "Waawsmall", "Yaasmall",
179                "FathahVertical.alt2", "Waawsmall.isol", "Yaasmall.isol", "FathahVertical.isol", "Hamzah",
180                "Shaddah.lillaah", "FathahVertical.alt1_mkmk", "Sifr.empty", "Maaddah.small", "FathahVertical.alt2",
181                "Waawsmall.isol", "Yaasmall.isol", "FathahTanwiin.alt1_mkmk", "KasrahTanwiin.alt1_mkmk",
182            },
183            [3] = {
184                "Ttaa.waqf", "SsLY.waqf", "QLY.waqf", "Miim.waqf", "LA.waqf", "Jiim.waqf", "Threedotsabove.waqf",
185                "Siin.waqf", "Ssaad.waqf", "Qaaf.waqf", "SsL.waqf", "QF.waqf", "SKTH.waqf", "WQFH.waqf",
186                "Kaaf.waqf", "Ayn.ruku", "Miim.nuun_high", "Siin.Ssaad", "Nuunsmall", "emptydot_low",
187                "emptydot_high", "Sifr.fill", "Miim.nuun_low", "Nuun.tanwiin",
188            },
189            [4] = {
190                "ZeroArabic.ayah", "OneArabic.ayah", "TwoArabic.ayah", "ThreeArabic.ayah", "FourArabic.ayah",
191                "FiveArabic.ayah", "SixArabic.ayah", "SevenArabic.ayah", "EightArabic.ayah", "NineArabic.ayah",
192                "FourFarsi.ayah", "FiveFarsi.ayah", "SixFarsi.ayah", "FourFarsi.urdu_ayah", "SevenFarsi.urdu_ayah",
193                "ZeroArabic.ayah_small", "OneArabic.ayah_small", "TwoArabic.ayah_small", "ThreeArabic.ayah_small",
194                "FourArabic.ayah.001", "FiveArabic.ayah_small", "SixArabic.ayah_small", "SevenArabic.ayah_small",
195                "EightArabic.ayah_small", "NineArabic.ayah_small",
196            },
197            [5] = {
198                "Ayah", "Ayah.alt1", "Ayah.alt2", "Ayah.alt3", "Ayah2",
199            }
200        }
201    }
202}
203