Created
December 30, 2019 19:28
-
-
Save be5invis/03800e53394928b5be9e739e0a77c9fd to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"use esnext"; | |
const version = '3.0.0-alpha.2' | |
const shapes = { | |
'': ['Default', '', false, true], | |
slab: ['Slab', 'Slab', true, true], | |
curly: ['Curly', 'Curly', false, true], | |
'curly-slab': ['Curly Slab', 'Curly Slab', true, true], | |
ss01: ['Andale Mono Style', 'SS01'], | |
ss02: ['Anonymous Pro Style', 'SS02'], | |
ss03: ['Consolas Style', 'SS03'], | |
ss04: ['Menlo Style', 'SS04'], | |
ss05: ['Fira Mono Style', 'SS05'], | |
ss06: ['Liberation Mono Style', 'SS06'], | |
ss07: ['Monaco Style', 'SS07'], | |
ss08: ['Pragmata Pro Style', 'SS08'], | |
ss09: ['Source Code Pro Style', 'SS09'], | |
ss10: ['Envy Code R Style', 'SS10'], | |
ss11: ['X Windows Fixed Style', 'SS11'], | |
ss12: ['Ubuntu Mono Style', 'SS12'], | |
aile: ['Quasi-proportional', 'Aile', false, false, true], | |
etoile: ['Quasi-proportional slab-serif', 'Etoile', false, false, true], | |
sparkle: ['Quasi-proportional family — like iA Writer’s Duo.', 'Sparkle', false, false, true] | |
}; | |
const spacings = { | |
'': ['Default', true, ''], | |
'term': ["Terminal", false, 'Type'], | |
'type': ["Typesetting", true, 'Type'], | |
'term-lig': ["Terminal-Ligature", true, "TermLig"] | |
}; | |
let nr = 1; | |
console.log(`| Package | Description |\n| --- | --- |`) | |
for(let shape in shapes) { | |
const [shapeDesc, shapeNameSuffix, slab, count, nospace] = shapes[shape]; | |
for(let spacing in spacings){ | |
if (nospace && spacing) continue; | |
const [spacingDesc, ligation, spacingNameSuffix] = spacings[spacing]; | |
const fileName = buildName('-', count ? pad(nr,2,'0') : '', 'iosevka', spacing, shape, version); | |
const familyName = buildName(' ', 'Iosevka', spacingNameSuffix, shapeNameSuffix) | |
const desc = nospace ? `_${shapeDesc}_` : `**Shape**: _${shapeDesc}_; **Spacing**: _${spacingDesc}_ <br/>**Ligation**: ${flag(ligation)}` | |
if(count) nr++; | |
console.log(`| \`${fileName}\`<br/>**Menu Name**: \`${familyName}\` | ${desc} |`); | |
} | |
} | |
function pad(s,n,p){ | |
s=''+s; | |
while(s.length<n) s=p+s; | |
return s; | |
} | |
function buildName(j,...parts){ | |
return parts.filter(x=>!!x).join(j) | |
} | |
function flag(f){ | |
return f?'**Yes**':'No' | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment