diff --git a/images/download-options.png b/images/download-options.png index 10220dde6..0ee85779f 100644 Binary files a/images/download-options.png and b/images/download-options.png differ diff --git a/images/family.png b/images/family.png index dc0fa3aac..01911ab24 100644 Binary files a/images/family.png and b/images/family.png differ diff --git a/images/languages.png b/images/languages.png index 1e2e96d53..639700433 100644 Binary files a/images/languages.png and b/images/languages.png differ diff --git a/images/ligations.png b/images/ligations.png index 148931360..db9da231b 100644 Binary files a/images/ligations.png and b/images/ligations.png differ diff --git a/images/matrix.png b/images/matrix.png index da6557167..c49a48463 100644 Binary files a/images/matrix.png and b/images/matrix.png differ diff --git a/images/opentype.png b/images/opentype.png index f5469eb55..6f888e2ce 100644 Binary files a/images/opentype.png and b/images/opentype.png differ diff --git a/images/preview-all.png b/images/preview-all.png index e4d664f62..89b95fc52 100644 Binary files a/images/preview-all.png and b/images/preview-all.png differ diff --git a/images/variants.png b/images/variants.png index 42193f60d..e320d2be4 100644 Binary files a/images/variants.png and b/images/variants.png differ diff --git a/images/weights.png b/images/weights.png index 77dd3b695..4971a28a7 100644 Binary files a/images/weights.png and b/images/weights.png differ diff --git a/makefile b/makefile index aef206257..963a2500f 100644 --- a/makefile +++ b/makefile @@ -1,4 +1,4 @@ -VERSION = 1.12.5 +VERSION = 1.13.0 export VERSION start : __start diff --git a/maker.js b/maker.js index 6e34f6494..3458f22d6 100644 --- a/maker.js +++ b/maker.js @@ -1,55 +1,57 @@ -const fs = require("fs"); -const path = require("path"); -const argv = require("yargs").argv; +const fs = require('fs'); +const path = require('path'); +const argv = require('yargs').argv; +const pad = require('pad'); +const weights = ['thin', 'extralight', 'light', 'book', 'medium', 'bold', 'heavy']; +const slantnesses = ['upright', 'italic', 'oblique']; +const widths = ['term', 'normal', 'cc']; +const designs = ['sans', 'slab']; -const weights = ["thin", "extralight", "light", "book", "medium", "bold", "heavy"]; -const slantnesses = ["upright", "italic", "oblique"]; -const widths = ["term", "normal", "cc"]; -const designs = ["sans", "slab"]; - -function present(x) { return !!x; } +function present(x) { + return !!x; +} function tofn(a) { - return a.filter(present).join("-"); + return a.filter(present).join('-'); } function getMapping(options) { options = options || { design: [], - width: "normal", - weight: "book", - slantness: "upright", + width: 'normal', + weight: 'book', + slantness: 'upright', styles: {}, - dirPrefix: "", - dirSuffix: "", - filePrefix: "", - infix: "", - fileSuffix: "" + dirPrefix: '', + dirSuffix: '', + filePrefix: '', + infix: '', + fileSuffix: '' }; let design = options.design || []; let prestyle = options.prestyle || []; - let weight = options.weight || "book"; - let slantness = options.slantness || "upright"; - let hives = ["iosevka"].concat( + let weight = options.weight || 'book'; + let slantness = options.slantness || 'upright'; + let hives = ['iosevka'].concat( prestyle, - ["w-" + weight, "s-" + slantness], + ['w-' + weight, 's-' + slantness], (options.styles || {})[slantness] || [], design ); - let dir = [ - options.dirPrefix || "", - "iosevka", - options.infix || tofn(design), - options.dirSuffix || "" - ].filter(present).join("-"); + let dir = [options.dirPrefix || '', 'iosevka', options.infix || tofn(design), options.dirSuffix || ''] + .filter(present) + .join('-'); let filename = [ - options.filePrefix || "", - "iosevka", + options.filePrefix || '', + 'iosevka', options.infix || tofn(design), - options.fileSuffix || "", - (weight === "book" ? (slantness === "upright" ? "regular" : "") : weight) + (slantness === "upright" ? "" : slantness) - ].filter(present).join("-"); + options.fileSuffix || '', + (weight === 'book' ? slantness === 'upright' ? 'regular' : '' : weight) + + (slantness === 'upright' ? '' : slantness) + ] + .filter(present) + .join('-'); return { hives, dir, filename, custom: options.custom }; } @@ -64,12 +66,12 @@ function createMake(mapping) { let woffTarget = `$(DIST)/${dir}/woff/${filename}.woff`; let woff2Target = `$(DIST)/${dir}/woff2/${filename}.woff2`; - let buf = ""; + let buf = ''; if (!definedBuildSeqs[tfname]) { buf += ` ${tfname} : ${custom || ''} $(SCRIPTS) | $(BUILD) $(DIST)/${dir}/ @echo Building ${filename} with ${hives.join(' ')} - $(GENERATE) ${hives.join(' ')} -o $@ ${cm ? ('--charmap $(BUILD)/' + filename + '.charmap') : ''}`; + $(GENERATE) ${hives.join(' ')} -o $@ ${cm ? '--charmap $(BUILD)/' + filename + '.charmap' : ''}`; definedBuildSeqs[tfname] = true; } buf += ` @@ -98,7 +100,7 @@ if (argv.custom) { designGroups = [ { custom: '$(BUILD)/targets-' + argv.custom + '.mk', - name: "customized-" + argv.custom, + name: 'customized-' + argv.custom, design: argv.design.trim().split(/ +/), prestyle: argv.prestyle.trim().split(/ +/), width: argv.width, @@ -112,21 +114,30 @@ if (argv.custom) { ]; } else { designGroups = [ - { name: "sans", design: [], dirPrefix: "" }, - { name: "slab", design: ["slab"], dirPrefix: "" }, - { name: "r-sans", design: [], dirPrefix: "01" }, - { name: "r-sans-term", design: ["term"], dirPrefix: "02" }, - { name: "r-sans-type", design: ["type"], dirPrefix: "03" }, - { name: "r-sans-cc", design: ["cc"], dirPrefix: "04" }, - { name: "r-slab", design: ["slab"], dirPrefix: "05" }, - { name: "r-slab-term", design: ["term", "slab"], dirPrefix: "06" }, - { name: "r-slab-type", design: ["type", "slab"], dirPrefix: "07" }, - { name: "r-slab-cc", design: ["cc", "slab"], dirPrefix: "08" }, - { name: "r-hooky", design: [], infix: "hooky", dirPrefix: "09", styles: { upright: ["v-l-hooky", "v-i-hooky"] } }, - { name: "r-hooky-term", design: ["term"], infix: "hooky-term", dirPrefix: "10", styles: { upright: ["v-l-hooky", "v-i-hooky"] } }, - { name: "r-zshaped", design: [], infix: "zshaped", dirPrefix: "11", styles: { upright: ["v-l-zshaped", "v-i-zshaped"] } }, - { name: "r-zshaped-term", design: ["term"], infix: "zshaped-term", dirPrefix: "12", styles: { upright: ["v-l-zshaped", "v-i-zshaped"] } }, + { name: 'sans', design: [], dirPrefix: '' }, + { name: 'slab', design: ['slab'], dirPrefix: '' }, + { name: 'r-sans', design: [], dirPrefix: '01' }, + { name: 'r-sans-term', design: ['term'], dirPrefix: '02' }, + { name: 'r-sans-type', design: ['type'], dirPrefix: '03' }, + { name: 'r-sans-cc', design: ['cc'], dirPrefix: '04' }, + { name: 'r-slab', design: ['slab'], dirPrefix: '05' }, + { name: 'r-slab-term', design: ['term', 'slab'], dirPrefix: '06' }, + { name: 'r-slab-type', design: ['type', 'slab'], dirPrefix: '07' }, + { name: 'r-slab-cc', design: ['cc', 'slab'], dirPrefix: '08' } ]; + for (let j = 1; j <= 11; j++) { + const tag = 'ss' + pad(2, '' + j, '0'); + designGroups.push({ + name: `r-sans-${tag}`, + design: [tag], + dirPrefix: `` + }); + designGroups.push({ + name: `r-sans-term-${tag}`, + design: ['term', tag], + dirPrefix: `` + }); + } } let makes = []; @@ -141,25 +152,33 @@ for (let dg of designGroups) { woff2: [] }; const groupMapping = getMapping(dg); - makes.push(` + makes.push( + ` $(DIST)/${groupMapping.dir}/ : | $(DIST)/ - -@mkdir -p $@`); - makes.push(` + -@mkdir -p $@` + ); + makes.push( + ` $(DIST)/${groupMapping.dir}/ttf/ : | $(DIST)/${groupMapping.dir}/ - -@mkdir -p $@`); - makes.push(` + -@mkdir -p $@` + ); + makes.push( + ` $(DIST)/${groupMapping.dir}/woff/ : | $(DIST)/${groupMapping.dir}/ - -@mkdir -p $@`); - makes.push(` + -@mkdir -p $@` + ); + makes.push( + ` $(DIST)/${groupMapping.dir}/woff2/ : | $(DIST)/${groupMapping.dir}/ - -@mkdir -p $@`); + -@mkdir -p $@` + ); for (let weight of weights) for (let slantness of slantnesses) { let config = Object.create(dg); config.weight = weight; config.slantness = slantness; const mapping = getMapping(config); - if (weight === "book" && slantness === "upright") { + if (weight === 'book' && slantness === 'upright') { mapping.cm = true; } @@ -176,8 +195,10 @@ $(DIST)/${groupMapping.dir}/woff2/ : | $(DIST)/${groupMapping.dir}/ makes.push(`fonts-${dg.name}-italic : ${groupTargets.italic.join(' ')}`); makes.push(`fonts-${dg.name}-oblique : ${groupTargets.oblique.join(' ')}`); makes.push(`web-${dg.name} : ${groupTargets.woff.join(' ')} ${groupTargets.woff2.join(' ')}`); - makes.push(`$(ARCHIVEDIR)/${groupMapping.dir}-$(VERSION).zip : fonts-${dg.name} web-${dg.name} | $(ARCHIVEDIR)/ - cd $(DIST)/${groupMapping.dir}/ && 7z a -tzip -r -mx=9 ../../$@ ./`); + makes.push( + `$(ARCHIVEDIR)/${groupMapping.dir}-$(VERSION).zip : fonts-${dg.name} web-${dg.name} | $(ARCHIVEDIR)/ + cd $(DIST)/${groupMapping.dir}/ && 7z a -tzip -r -mx=9 ../../$@ ./` + ); makes.push(`archive-${dg.name} : $(ARCHIVEDIR)/${groupMapping.dir}-$(VERSION).zip`); } @@ -189,9 +210,11 @@ if (argv.custom) { ]; // ttc let ttcs = []; - makes.push(` + makes.push( + ` $(DIST)/ttc/ : | $(DIST)/ - -@mkdir -p $@`); + -@mkdir -p $@` + ); for (let tg of ttcgroups) { for (let weight of weights) { for (let slantness of slantnesses) { @@ -209,20 +232,24 @@ $(DIST)/ttc/ : | $(DIST)/ config.slantness = slantness; const mapping = getMapping(config); ttcs.push(`$(DIST)/ttc/${mapping.filename}.ttc`); - makes.push(` + makes.push( + ` $(DIST)/ttc/${mapping.filename}.ttc : ${ttctargets.join(' ')} | $(DIST)/ttc/ otfcc-ttcize -o $@ ${ttctargets.join(' ')} -`); +` + ); } } } makes.push(`ttc : ${ttcs.join(' ')}`); - makes.push(`$(ARCHIVEDIR)/iosevka-pack-$(VERSION).zip : ttc | $(ARCHIVEDIR)/ - cd $(DIST)/ttc/ && 7z a -tzip -mx=9 ../../$@ ./*.ttc`); + makes.push( + `$(ARCHIVEDIR)/iosevka-pack-$(VERSION).zip : ttc | $(ARCHIVEDIR)/ + cd $(DIST)/ttc/ && 7z a -tzip -mx=9 ../../$@ ./*.ttc` + ); makes.push(`archive-ttc : $(ARCHIVEDIR)/iosevka-pack-$(VERSION).zip`); makes.push(`__default : fonts-sans fonts-slab`); - makes.push(`__release : archive-r-sans archive-r-slab archive-r-sans-term archive-r-sans-type archive-r-sans-cc archive-r-slab-term archive-r-slab-type archive-r-slab-cc archive-r-hooky archive-r-hooky-term archive-r-zshaped archive-r-zshaped-term archive-ttc`); + makes.push(`__release : archive-ttc ${designGroups.map(g => 'archive-' + g.name).join(' ')}`); } -console.log(makes.join("\n\n")); +console.log(makes.join('\n\n')); diff --git a/package.json b/package.json index b1e63892a..bd9a2344b 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "libspiro-js": ">=0.3.0", "object-assign": "^4.1.1", "otfcc-c2q": "^0.5.0", + "pad": "^1.1.0", "patel": ">=0.32.0", "toml": ">=2.3.0", "topsort": "0.0.2", diff --git a/parameters.toml b/parameters.toml index 1b0c210b1..a908f8e46 100644 --- a/parameters.toml +++ b/parameters.toml @@ -1,7 +1,7 @@ [iosevka] family = 'Iosevka' -version = '1.12.5' -codename = 'Lorraine-5' +version = '1.13.0' +codename = 'Marisa' copyright = 'Copyright (c) 2015-2017 Belleve Invis.' licence = '''This font software is licenced under the SIL Open Font Licence, Version 1.1. This is licence is avaliable with a FAQ at: http://scripts.sil.org/OFL. This font software is distributes on an 'AS IS' basis, without warranties or conditions of any kind, either express or implied. See the SIL Open Font licence fot the specific language, premissions and limitations governing your use of this font software.''' manufacturer = 'Belleve Invis' diff --git a/snapshot/index.html b/snapshot/index.html index 61b911940..2357826fe 100644 --- a/snapshot/index.html +++ b/snapshot/index.html @@ -60,6 +60,10 @@ ss10Envy Code R Style @real fox.quick(h){ *is_brown && it_jumps_over(doges.lazy) } 0123456789@real fox.quick(h){ *is_brown && it_jumps_over(doges.lazy) } 0123456789 +
  • + ss11X Windows Fixed Style + @real fox.quick(h){ *is_brown && it_jumps_over(doges.lazy) } 0123456789@real fox.quick(h){ *is_brown && it_jumps_over(doges.lazy) } 0123456789 +
  • Character Variants
    1. diff --git a/utility/standard.mk b/utility/standard.mk index 1dfc85a73..6de2c9c13 100644 --- a/utility/standard.mk +++ b/utility/standard.mk @@ -16,26 +16,30 @@ web : web-sans web-slab release : __release pages sample-images test : fonts-sans fonts-slab - cp dist/iosevka/*.ttf testdrive/assets/ - cp dist/iosevka-slab/*.ttf testdrive/assets/ + cp dist/iosevka/ttf/* testdrive/assets/ + cp dist/iosevka-slab/ttf/* testdrive/assets/ cp build/iosevka-regular.charmap testdrive/assets/ cp build/iosevka-slab-regular.charmap testdrive/assets/ pages : fonts-sans fonts-slab web-sans web-slab - cp dist/iosevka/*.ttf pages/assets/ - cp dist/iosevka/web/* pages/assets/ - cp dist/iosevka-slab/*.ttf pages/assets/ - cp dist/iosevka-slab/web/* pages/assets/ + cp dist/iosevka/ttf/* pages/assets/ + cp dist/iosevka/woff/* pages/assets/ + cp dist/iosevka/woff2/* pages/assets/ + cp dist/iosevka-slab/ttf/* pages/assets/ + cp dist/iosevka-slab/woff/* pages/assets/ + cp dist/iosevka-slab/woff2/* pages/assets/ cp build/iosevka-regular.charmap pages/assets/ cp build/iosevka-slab-regular.charmap pages/assets/ fw : ttc d-snapshot : fonts-sans fonts-slab web-sans web-slab - cp dist/iosevka/*.ttf snapshot/assets/ - cp dist/iosevka/web/* snapshot/assets/ - cp dist/iosevka-slab/*.ttf snapshot/assets/ - cp dist/iosevka-slab/web/* snapshot/assets/ + cp dist/iosevka/ttf/* snapshot/assets/ + cp dist/iosevka/woff/* snapshot/assets/ + cp dist/iosevka/woff2/* snapshot/assets/ + cp dist/iosevka-slab/ttf/* snapshot/assets/ + cp dist/iosevka-slab/woff/* snapshot/assets/ + cp dist/iosevka-slab/woff2/* snapshot/assets/ cp build/iosevka-regular.charmap snapshot/assets/ cp build/iosevka-slab-regular.charmap snapshot/assets/ electronsnaps1: d-snapshot diff --git a/variants.toml b/variants.toml index 13a59fb33..498207a05 100644 --- a/variants.toml +++ b/variants.toml @@ -269,3 +269,7 @@ upright = ['v-i-hooky'] # Envy Code R Style [composite.ss10] design = ['v-at-long', 'v-a-doublestorey', 'v-underscore-low', 'v-g-singlestorey', 'v-i-hooky', 'v-l-hooky', 'v-asterisk-low'] + +# X Window Style +[composite.ss11] +design = ['v-g-singlestorey', 'v-zero-unslashed', 'v-tilde-high', 'v-brace-straight', 'v-dollar-through', 'v-three-flattop', 'v-at-long'] \ No newline at end of file