Cont
This commit is contained in:
parent
539c828605
commit
942deb3bbe
7 changed files with 395 additions and 430 deletions
|
@ -707,7 +707,7 @@ lower-lambda = "straight-turn"
|
|||
cyrl-ef = "serifless"
|
||||
cyrl-capital-ka = "symmetric-connected-serifless"
|
||||
cyrl-ka = "symmetric-connected-serifless"
|
||||
cyrl-capital-u = "straight"
|
||||
cyrl-capital-u = "straight-serifless"
|
||||
at = "fourfold"
|
||||
percent = "rings-continuous-slash"
|
||||
|
||||
|
@ -739,7 +739,7 @@ lower-lambda = "straight-turn"
|
|||
cyrl-ef = "serifless"
|
||||
cyrl-capital-ka = "symmetric-connected-serifless"
|
||||
cyrl-ka = "symmetric-connected-serifless"
|
||||
cyrl-capital-u = "straight"
|
||||
cyrl-capital-u = "straight-serifless"
|
||||
at = "fourfold"
|
||||
percent = "rings-continuous-slash"
|
||||
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
* \[**BREAKING**\] Add taller slash, broken slash and broken zero variants for Zero. As a result, current variants are reordered (#1307, #1509, #1678).
|
||||
* \[**BREAKING**\] Add above-baseline crossed variant for Q. As a result, current variants are reordered (#1533).
|
||||
* \[**BREAKING**\] Rectify the variant atlas. As a result, if a character's variant list has motion-serifed, then it will have serifless and serifed variants: the serifed-ness will no longer be controlled by SLAB variable. The characters influenced are `M`, `N`, `P`, `R`, `U`, `V`, `W`, `b`, `h`, `m`, `n`, `p`, `q`, `u`, `v`, `w`, `y`.
|
||||
* \[**BREAKING**\] Renamed and/or reordered the variants of the following letters:
|
||||
- `K`, `k`, Cyrillic Ka.
|
||||
- `r`.
|
||||
- `W`, `w`.
|
||||
* \[**BREAKING**\] Renamed and/or reordered various variants.
|
||||
* Add Characters:
|
||||
- CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN (`U+29BC`).
|
||||
- CIRCLED WHITE BULLET (`U+29BE`).
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
$$include '../../../meta/macros.ptl'
|
||||
|
||||
import [mix linreg clamp fallback] from"../../../support/utils.mjs"
|
||||
import [mix linreg fallback SuffixCfg] from"../../../support/utils.mjs"
|
||||
import [LowerYDotAtBelow Dotless CvDecompose MathSansSerif OgonekTrY] from"../../../support/gr.mjs"
|
||||
|
||||
glyph-module
|
||||
|
@ -242,35 +242,18 @@ glyph-block Letter-Latin-Lower-Y : begin
|
|||
include : Scale 1 (-1)
|
||||
include : Translate 0 (+[mix bottom top 0.5])
|
||||
|
||||
define NonCursiveConfig : object
|
||||
# suffix straightBar bottomShape slabKind
|
||||
straight { true BS-STRAIGHT SLAB-AUTO }
|
||||
straightTurn { true BS-TURN SLAB-AUTO }
|
||||
straightLoop { true BS-LOOP SLAB-AUTO }
|
||||
curly { false BS-STRAIGHT SLAB-AUTO }
|
||||
curlyTurn { false BS-TURN SLAB-AUTO }
|
||||
curlyLoop { false BS-LOOP SLAB-AUTO }
|
||||
|
||||
straightSerifless { true BS-STRAIGHT SLAB-NONE }
|
||||
straightTurnSerifless { true BS-TURN SLAB-NONE }
|
||||
straightLoopSerifless { true BS-LOOP SLAB-NONE }
|
||||
curlySerifless { false BS-STRAIGHT SLAB-NONE }
|
||||
curlyTurnSerifless { false BS-TURN SLAB-NONE }
|
||||
curlyLoopSerifless { false BS-LOOP SLAB-NONE }
|
||||
|
||||
straightSerifed { true BS-STRAIGHT SLAB-ALL }
|
||||
straightTurnSerifed { true BS-TURN SLAB-ALL }
|
||||
straightLoopSerifed { true BS-LOOP SLAB-ALL }
|
||||
curlySerifed { false BS-STRAIGHT SLAB-ALL }
|
||||
curlyTurnSerifed { false BS-TURN SLAB-ALL }
|
||||
curlyLoopSerifed { false BS-LOOP SLAB-ALL }
|
||||
|
||||
straightMotionSerifed { true BS-STRAIGHT SLAB-MOTION }
|
||||
straightTurnMotionSerifed { true BS-TURN SLAB-MOTION }
|
||||
straightLoopMotionSerifed { true BS-LOOP SLAB-MOTION }
|
||||
curlyMotionSerifed { false BS-STRAIGHT SLAB-MOTION }
|
||||
curlyTurnMotionSerifed { false BS-TURN SLAB-MOTION }
|
||||
curlyLoopMotionSerifed { false BS-LOOP SLAB-MOTION }
|
||||
define NonCursiveConfig : SuffixCfg.weave
|
||||
object # body
|
||||
straight true
|
||||
curly false
|
||||
object # hook
|
||||
"" BS-STRAIGHT
|
||||
turn BS-TURN
|
||||
loop BS-LOOP
|
||||
object # serifs
|
||||
serifless SLAB-NONE
|
||||
serifed SLAB-ALL
|
||||
motionSerifed SLAB-MOTION
|
||||
|
||||
foreach { suffix { straightBar bottomShape slabKind } } [Object.entries NonCursiveConfig] : do
|
||||
define Shapes : GenNonCursiveShape straightBar bottomShape slabKind
|
||||
|
@ -336,15 +319,14 @@ glyph-block Letter-Latin-Lower-Y : begin
|
|||
if doSlabMotion sf.lt.outer sf.lt.full
|
||||
if doSlabMotion [no-shape] sf.rt.full
|
||||
|
||||
define CursiveConfig : object
|
||||
cursive { Cursive.Hook SLAB-AUTO }
|
||||
cursiveFlatHook { Cursive.FlatHook SLAB-AUTO }
|
||||
cursiveSerifless { Cursive.Hook SLAB-NONE }
|
||||
cursiveFlatHookSerifless { Cursive.FlatHook SLAB-NONE }
|
||||
cursiveMotionSerifed { Cursive.Hook SLAB-CURSIVE-MOTION }
|
||||
cursiveFlatHookMotionSerifed { Cursive.FlatHook SLAB-CURSIVE-MOTION }
|
||||
cursiveSerifed { Cursive.Hook SLAB-ALL }
|
||||
cursiveFlatHookSerifed { Cursive.FlatHook SLAB-ALL }
|
||||
define CursiveConfig : SuffixCfg.weave
|
||||
object # body
|
||||
cursive Cursive.Hook
|
||||
cursiveFlatHook Cursive.FlatHook
|
||||
object # serifs
|
||||
serifless SLAB-NONE
|
||||
serifed SLAB-ALL
|
||||
motionSerifed SLAB-MOTION
|
||||
|
||||
foreach { suffix { hookShape slabKind } } [Object.entries CursiveConfig] : do
|
||||
create-glyph "y.\(suffix)" : glyph-proc
|
||||
|
|
|
@ -390,12 +390,17 @@ function byTagPreference(a, b) {
|
|||
}
|
||||
function queryCvFeatureTagsOf(sink, gid, glyph, tagSet) {
|
||||
const cvs = AnyCv.query(glyph).sort(byTagPreference);
|
||||
|
||||
let existingFeatures = new Map();
|
||||
let existingTargets = new Set();
|
||||
|
||||
for (const gr of cvs) {
|
||||
const target = gr.get(glyph);
|
||||
if (target === gid) continue;
|
||||
|
||||
if (existingTargets.has(target)) continue;
|
||||
existingTargets.add(target);
|
||||
|
||||
let series = existingFeatures.get(gr.tag);
|
||||
if (!series) {
|
||||
if (tagSet) {
|
||||
|
|
|
@ -295,7 +295,7 @@ class VbStageAlternative {
|
|||
for (const [selector, suffix] of Object.entries(this.selectorAffix))
|
||||
ans.addSelectorAffix(this.mode, selector, suffix);
|
||||
|
||||
if (!this.next) {
|
||||
if (!this.next || this.next === "END") {
|
||||
ans.rank = ++globalState.rank;
|
||||
globalState.sink.push(ans);
|
||||
return null;
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -78,7 +78,9 @@ function putFeatSeries(store, k, featSeriesList) {
|
|||
if (!featSeriesList) return null;
|
||||
|
||||
let reduced = [];
|
||||
for (const featSeries of featSeriesList) {
|
||||
for (const _featSeries of featSeriesList) {
|
||||
const featSeries = ValidateFeatureSeries(_featSeries);
|
||||
|
||||
const key =
|
||||
featSeries.name +
|
||||
";;" +
|
||||
|
@ -89,9 +91,8 @@ function putFeatSeries(store, k, featSeriesList) {
|
|||
reduced.push(vs[0]);
|
||||
} else {
|
||||
const idNeo = store.size;
|
||||
const validated = ValidateFeatureSeries(featSeries);
|
||||
if (!validated) continue;
|
||||
store.set(key, [idNeo, validated]);
|
||||
if (!featSeries) continue;
|
||||
store.set(key, [idNeo, featSeries]);
|
||||
reduced.push(idNeo);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue