Add another ligation sample table for calt

This commit is contained in:
be5invis 2020-10-30 22:38:17 -07:00
parent c5f01d5356
commit 5460d44485
2 changed files with 44 additions and 13 deletions

View file

@ -47,6 +47,8 @@ Afrikaans, Aghem, Akan, Albanian, Asturian, Asu, Azerbaijani, Bafia, Bambara, Ba
<!-- END Section-Language-List -->
### Stylistic Sets and Character Variants
Iosevka supports accessing all letter variants using OpenType features, including `ss##` for applying a stylistic set, or `cv##` to cherry-pick variants.
![Style Sets](images/stylesets.png)
@ -57,9 +59,31 @@ Iosevka supports accessing all letter variants using OpenType features, includin
Iosevkas default ligation set is assigned to `calt` feature, though not all of them are enabled by default.
<!-- BEGIN Section-OT-Ligation-Tags-1 -->
<!-- THIS SECTION IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
<table>
<tr>
<td><code>calt off</td>
<td>Ligation Off</td>
</tr>
<tr>
<td colspan="2"><img src="images/ligset-calt-0.png"/></td>
</tr>
<tr>
<td><code>calt</code></td>
<td>Default setting in text editors</td>
</tr>
<tr>
<td colspan="2"><img src="images/ligset-calt-1.png"/></td>
</tr>
</table>
<!-- END Section-OT-Ligation-Tags-1 -->
Iosevka supports Language-Specific Ligations, which is the ligation set enabled only under certain languages. These ligation sets are assigned to custom feature tags. To use them, you need to turn **off** `calt` and enable the corresponded feature. The feature list is:
<!-- BEGIN Section-OT-Ligation-Tags -->
<!-- BEGIN Section-OT-Ligation-Tags-2 -->
<!-- THIS SECTION IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->
<table>
@ -135,7 +159,7 @@ Iosevka supports Language-Specific Ligations, which is the ligation set enabled
</tr>
</table>
<!-- END Section-OT-Ligation-Tags -->
<!-- END Section-OT-Ligation-Tags-2 -->
Please note that, due to the complex interactions when forming ligations, cherry-picking ligation groups will require a custom Iosevka build. The instructions could be seen below.

View file

@ -22,7 +22,8 @@ async function main() {
readme = (await processSs()).apply(readme);
readme = (await processLigSetCherryPicking()).apply(readme);
readme = (await processLigSetPreDef()).apply(readme);
readme = (await processLigSetOt()).apply(readme);
readme = (await processLigSetOt(1, g => g.tag === "calt")).apply(readme);
readme = (await processLigSetOt(2, g => g.tag !== "calt")).apply(readme);
readme = (await processLangList()).apply(readme);
readme = (await processPrivateBuildPlans()).apply(readme);
await fs.writeFile(readmePath, readme);
@ -158,19 +159,25 @@ async function processLigSetPreDef() {
return md;
}
async function processLigSetOt() {
async function processLigSetOt(index, fn) {
const ligData = await parseLigationData();
const md = new MdCol("Section-OT-Ligation-Tags");
const md = new MdCol(`Section-OT-Ligation-Tags-${index}`);
md.log(`<table>`);
for (const ls of ligData.sets) {
if (!ls.rank || ls.tag === "calt") continue;
md.log(`<tr>`);
md.log(`<td>${ls.tagName.map(x => `<code>${x}</code>`).join("; ")}</td>`);
md.log(`<td>${ls.desc}</td>`);
md.log(`</tr>`);
md.log(`<tr>`);
md.log(`<td colspan="2"><img src="images/ligset-${ls.tag}-${ls.rank}.png"/></td>`);
md.log(`</tr>`);
if (!fn(ls)) continue;
{
md.log(`<tr>`);
if (ls.tagName)
md.log(`<td>${ls.tagName.map(x => `<code>${x}</code>`).join("; ")}</td>`);
else md.log(`<td><code>${ls.tag} off</td>`);
md.log(`<td>${ls.desc}</td>`);
md.log(`</tr>`);
}
{
md.log(`<tr>`);
md.log(`<td colspan="2"><img src="images/ligset-${ls.tag}-${ls.rank}.png"/></td>`);
md.log(`</tr>`);
}
}
md.log(`</table>`);
return md;