Skip to content

Commit

Permalink
pull upstream (#3)
Browse files Browse the repository at this point in the history
* More arrow fixup

* Add more detailed docs for building. Fixes be5invis#474

* Add docs for width customization

* Update Node.JS version requirement. Fixes be5invis#486

* Fix phonetic ligatures' shape. Now they are connected more closely (be5invis#488).

* Remove unused logs

* Fix LATIN SMALL LETTER TC DIGRAPH WITH CURL overflow

* Fix shape of U+AB30, U+AB64 and U+1DE7 (be5invis#489).

* Docs: fix required otfcc version (be5invis#490)

* Make dot removal work if a below or other mark is between the base and above mark

* Fix export of U+478 and U+479

* Make "ligtions using dlig and calt at same time" less strange

* Fixup format

* Fix shape of U+029A, U+1D08, U+1D4C (be5invis#491).

* remove "ai" knots

* Add U+AB66 and U+AB67 (be5invis#488).

* Force f-eng to be connected

* Add [reverse-rule] to simplify reverse subst code

* Make GSUB more efficient

* Need to keep correspondence

* Fix shape of U+1DF0 (be5invis#497).

* Adjust length of diagonal arrows

* Make double arrow only work with arrow2 selector

* Add ligation for shift-equal operators (>>=, <<=, >>>=, <<<=)

* Update visualization data

* Add ligation group "CLIK"

* Add warning about auto-generated README sections

* Add overrideSupportedLanguages list

* Bump version

* Fix incorrect sample images of ligations

Co-authored-by: Belleve Invis <belleve@typeof.net>
  • Loading branch information
black-black-cat and be5invis authored Apr 18, 2020
1 parent cfeaff1 commit 93ebb43
Show file tree
Hide file tree
Showing 43 changed files with 1,417 additions and 931 deletions.
10 changes: 6 additions & 4 deletions .prettierrc.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# .prettierrc
printWidth: 100
useTabs: true
tabWidth: 4
# .prettierrc
printWidth: 100
useTabs: true
tabWidth: 4
trailingComma: none
arrowParens: avoid
63 changes: 46 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ All versions include the same ranges of characters: Latin letters, Greek letters
![Languages Sample](https://raw.githubusercontent.com/be5invis/Iosevka/master/images/languages.png)

<!-- BEGIN Section-Language-List -->
<!-- THIS SECTION IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->

159 Supported Languages:

Expand All @@ -55,7 +56,7 @@ Iosevka supports Language-Specific Ligations, which is the ligation set enabled

To build Iosevka you should:

1. Ensure that [`nodejs`](http://nodejs.org) (≥ 8.4), [`ttfautohint`](http://www.freetype.org/ttfautohint/), [`otfcc`](https://github.com/caryll/otfcc) (≥ 0.9.3) and `otf2otc` are present.
1. Ensure that [`nodejs`](http://nodejs.org) (≥ 12.16.0), [`ttfautohint`](http://www.freetype.org/ttfautohint/), [`otfcc`](https://github.com/caryll/otfcc) (≥ 0.10.3-alpha) and `otf2otc` are present.
2. Install necessary libs by `npm install`. If you’ve installed them, upgrade to the latest.
3. `npm run build -- contents::iosevka`.

Expand All @@ -71,23 +72,23 @@ Since version 2.0, Iosevka would no longer support building via `makefile`. To i
2. Add a build plan into `private-build-plans.toml`, following this format:

```toml
[buildPlans.iosevka-custom] # <iosevka-custom> is your plan name
family = "Iosevka Custom" # Font menu family name
design = ["common styles"] # Common styles
upright = ["upright-only", "styles"] # Upright-only styles
italic = ["italic-only", "styles"] # Italic-only styles
oblique = ["oblique-only", "styles"] # Oblique-only styles
hintParams = ["-a", "sss"] # Optional custom parameters for ttfautohint
[buildPlans.iosevka-custom] # <iosevka-custom> is your plan name
family = "Iosevka Custom" # Font menu family name
design = ["leading-1500", "v-i-hooky", "v-l-hooky"] # Customize styles
hintParams = ["-a", "sss"] # Optional custom parameters for ttfautohint


# Override default building weights
# When buildPlans.<plan name>.weights is absent
# All weights would built and mapped to default shape/CSS
# IMPORTANT : Currently "menu" property only support 100, 200, 300, 400, 450, 500, 600, 700, 800, 900.
# and "shape" properly only supports number between 100 and 900 (inclusive).
# When buildPlans.<plan name>.weights is absent, all weights would built and mapped to
# default values.
# IMPORTANT : Currently "menu" and "css" property only support numbers between 0 and 1000.
# and "shape" properly only supports number between 100 and 900 (inclusive).
# If you decide to use custom weights you have to define all the weights you
# plan to use otherwise they will not be built.
[buildPlans.iosevka-custom.weights.regular]
shape = 400 # Weight for glyph shapes
menu = 400 # Weight for menu name
css = 400 # Weight for webfont CSS
shape = 400 # Weight for glyph shapes.
menu = 400 # Weight for the font's names.
css = 400 # Weight for webfont CSS.

[buildPlans.iosevka-custom.weights.book]
shape = 450
Expand All @@ -98,14 +99,37 @@ Since version 2.0, Iosevka would no longer support building via `makefile`. To i
shape = 700
menu = 700
css = 700

# End weight section


# Override default building slant sets
# Format: <upright|italic|oblique> = <"normal"|"italic"|"oblique">
# When this section is absent, all slants would be built.
[buildPlans.iosevka-custom.slants]
upright = "normal"
italic = "italic"
oblique = "oblique"
# End slant section


# Override default building widths
# When buildPlans.<plan name>.widths is absent, all widths would built and mapped to
# default values.
# IMPORTANT : Currently "shape" property only support 3, 5, and 7, while "menu" only
# support 1, 2, 3, 4, 5, 6, 7, 8, 9.
# If you decide to use custom weights you have to define all the weights you
# plan to use otherwise they will not be built.
[buildPlans.iosevka-custom.widths.normal]
shape = 5 # Width of glyph shapes.
menu = 5 # Width for the font's names.
css = "normal" # "font-stretch' property of webfont CSS.


[buildPlans.iosevka-custom.widths.extended]
shape = 7
menu = 7
css = "expanded"
# End width section
```

3. Run `npm run build -- contents::<your plan name>` and the built fonts would be avaliable in `dist/`. Aside from `contents::<plan>`, other options are:
Expand Down Expand Up @@ -134,10 +158,12 @@ The current available styles for `design`/`upright`/`italic`/`oblique` options a
- `no-cv-ss` : Prevent generation of `cv##` and `ss##` features.

<!-- BEGIN Section-Cherry-Picking-Predefined -->
<!-- THIS SECTION IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->

* Styles for ligation sets, include:

* `ligset-dlig`: Default ligation set would be assigned to Discretionary ligatures.
* `ligset-clike`: Default ligation set would be assigned to C-Like.
* `ligset-javascript`: Default ligation set would be assigned to JavaScript.
* `ligset-php`: Default ligation set would be assigned to PHP.
* `ligset-ml`: Default ligation set would be assigned to ML.
Expand All @@ -147,14 +173,14 @@ The current available styles for `design`/`upright`/`italic`/`oblique` options a
* `ligset-idris`: Default ligation set would be assigned to Idris.
* `ligset-elm`: Default ligation set would be assigned to Elm.
* `ligset-purescript`: Default ligation set would be assigned to PureScript.
* `ligset-patel`: Default ligation set would be assigned to PatEL.
* `ligset-swift`: Default ligation set would be assigned to Swift.
* `ligset-coq`: Default ligation set would be assigned to Coq.
* `ligset-matlab`: Default ligation set would be assigned to Matlab.

<!-- END Section-Cherry-Picking-Predefined -->

<!-- BEGIN Section-Cherry-Picking-Ligation-Sets -->
<!-- THIS SECTION IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->

* Styles for further customizing default (`calt`) ligation sets:

Expand All @@ -178,6 +204,7 @@ The current available styles for `design`/`upright`/`italic`/`oblique` options a
* `calt-kern-dotty`: Move connecting dotty punctuations closer, like for `::`, `:::` and `...`..
* `calt-logic`: Enable ligation for `/\` and `\/`.
* `calt-llgg`: Enable ligation for `<<`, `>>` and other angle-bracket chaining.
* `calt-llggeq`: Enable ligation for `<<=`, `>>=` as shift operator.
* `calt-dotoper`: Treat dot (`.`) as operator and perform chained centering.
* `calt-arrowZALE`: Treat `<=` as arrow.
* `calt-arrowZAGE`: Treat `>=` as co-arrow.
Expand All @@ -202,6 +229,7 @@ The current available styles for `design`/`upright`/`italic`/`oblique` options a
* `exclude-check-and-cross-symbol`: Exclude `✓✔✕✖✗✘` (U+2713 – U+2718) from the font.

<!-- BEGIN Section-Stylistic-Sets -->
<!-- THIS SECTION IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->

* Styles as stylistic sets:

Expand All @@ -224,6 +252,7 @@ The current available styles for `design`/`upright`/`italic`/`oblique` options a
<!-- END Section-Stylistic-Sets -->

<!-- BEGIN Section-Cherry-Picking-Styles -->
<!-- THIS SECTION IS AUTOMATICALLY GENERATED. DO NOT EDIT. -->

* Styles for individual characters. They are easy-to-understand names of the `cv##` styles, including:

Expand Down
98 changes: 98 additions & 0 deletions build-plans.toml
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,104 @@ from = [
"iosevka-term-curly-slab"
]

[collectPlans.iosevka-ss01]
from = [
"iosevka-ss01",
"iosevka-fixed-ss01",
"iosevka-term-ss01"
]

[collectPlans.iosevka-ss02]
from = [
"iosevka-ss02",
"iosevka-fixed-ss02",
"iosevka-term-ss02"
]

[collectPlans.iosevka-ss03]
from = [
"iosevka-ss03",
"iosevka-fixed-ss03",
"iosevka-term-ss03"
]

[collectPlans.iosevka-ss04]
from = [
"iosevka-ss04",
"iosevka-fixed-ss04",
"iosevka-term-ss04"
]

[collectPlans.iosevka-ss05]
from = [
"iosevka-ss05",
"iosevka-fixed-ss05",
"iosevka-term-ss05"
]

[collectPlans.iosevka-ss06]
from = [
"iosevka-ss06",
"iosevka-fixed-ss06",
"iosevka-term-ss06"
]

[collectPlans.iosevka-ss07]
from = [
"iosevka-ss07",
"iosevka-fixed-ss07",
"iosevka-term-ss07"
]

[collectPlans.iosevka-ss08]
from = [
"iosevka-ss08",
"iosevka-fixed-ss08",
"iosevka-term-ss08"
]

[collectPlans.iosevka-ss09]
from = [
"iosevka-ss09",
"iosevka-fixed-ss09",
"iosevka-term-ss09"
]

[collectPlans.iosevka-ss10]
from = [
"iosevka-ss10",
"iosevka-fixed-ss10",
"iosevka-term-ss10"
]

[collectPlans.iosevka-ss11]
from = [
"iosevka-ss11",
"iosevka-fixed-ss11",
"iosevka-term-ss11"
]

[collectPlans.iosevka-ss12]
from = [
"iosevka-ss12",
"iosevka-fixed-ss12",
"iosevka-term-ss12"
]

[collectPlans.iosevka-ss13]
from = [
"iosevka-ss13",
"iosevka-fixed-ss13",
"iosevka-term-ss13"
]

[collectPlans.iosevka-ss14]
from = [
"iosevka-ss14",
"iosevka-fixed-ss14",
"iosevka-term-ss14"
]

[collectPlans.iosevka-aile]
from = ["iosevka-aile"]

Expand Down
6 changes: 6 additions & 0 deletions changes/3.0.0-rc.7.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
* Fixed phonetic ligatures' shape. Now they are connected more closely (#488).
* Fix shape of U+AB30, U+AB64 and U+1DE7 (#489).
* Fix export of U+478 and U+479.
* Fix shape of U+029A, U+1D08, U+1D4C (#491).
* Add U+AB66 and U+AB67 (#488).
* Fix shape of U+1DF0 (#497).
2 changes: 1 addition & 1 deletion gen/build-font.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const { setFontMetrics } = require("../meta/aesthetics");
const regulateGlyphs = require("../support/regulate-glyph");
const gcFont = require("./gc");

module.exports = function(para) {
module.exports = function (para) {
const font = EmptyFont();
const gs = buildGlyphs(para);

Expand Down
2 changes: 1 addition & 1 deletion gen/empty-font.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"use strict";

module.exports = function() {
module.exports = function () {
return {
head: {
checkSumAdjustment: 369537602,
Expand Down
6 changes: 3 additions & 3 deletions gen/generator.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ const formLigationData = require("../support/ligation-data");
const regulateGlyphs = require("../support/regulate-glyph");
const toml = require("toml");

main().catch((e) => {
main().catch(e => {
console.error(e);
process.exit(1);
});
Expand Down Expand Up @@ -57,7 +57,7 @@ async function getParameters(argv) {
version: argv.ver,
weight: argv["menu-weight"] - 0,
width: argv["menu-width"] - 0,
slant: argv["menu-slant"],
slant: argv["menu-slant"]
};

return para;
Expand Down Expand Up @@ -108,7 +108,7 @@ async function saveCharMap(font) {
glyph.name,
glyph.unicode,
typographicFeatures,
glyph.featureSelector ? Object.keys(glyph.featureSelector) : [],
glyph.featureSelector ? Object.keys(glyph.featureSelector) : []
]);
}
await fs.writeFile(argv.charmap, JSON.stringify(charMap), "utf8");
Expand Down
1 change: 1 addition & 0 deletions glyphs/autobuild-accents.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,7 @@ define customDecompositions : object
."\u0384" "\uE09D\u0301"
."\u0385" "\uE09D\u0308\u0301"
."\u037A" "\uE09D\u0345"
."\uAB30" "\u0251\uE091"

# Suppress incorrect slashed arrows... so far
."\u219A" ""
Expand Down
Loading

0 comments on commit 93ebb43

Please sign in to comment.