Skip to content

Commit

Permalink
Finish work of #2310 . (#2311)
Browse files Browse the repository at this point in the history
  • Loading branch information
jmcwilliams403 authored Apr 24, 2024
1 parent debba0d commit ff58ccd
Show file tree
Hide file tree
Showing 9 changed files with 49 additions and 32 deletions.
2 changes: 1 addition & 1 deletion changes/30.0.0.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
* \[**Breaking**\] A separate variant selector, `ij-dot`, was added to allow users to configure the shape of the dots in `i` and `j` separately.
* \[**Breaking**\] A separate variant selector, `tittle`, was added to allow users to configure the shape of the dots in `i` and `j` separately.
- As a result, feature tags for `cv95` ... `cv99`, `VSAA` ... `VSAQ` are shifted by one place to `cv96` ... `cv99` `VSAA`, `VSAB` ... `VSAR`.
* Refine shape of CYRILLIC CAPITAL LETTER SHHA (`U+04BA`).
* Fix H bar position of CYRILLIC {CAPITAL|SMALL} LETTER NJE (`U+040A`, `U+045A`).
Expand Down
14 changes: 8 additions & 6 deletions packages/font-glyphs/src/letter/latin/lower-il.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -301,11 +301,13 @@ glyph-block Letter-Latin-Lower-I : begin
select-variant 'dotlessiRetroflexHook' (follow -- 'dotlessi')
CreateOgonekComposition 'iOgonek.dotless' null 'dotlessi'

CreateAccentedComposition 'i' 'i' 'dotlessi' 'dotAboveIJ'
CreateAccentedComposition 'i/sansSerif' null 'dotlessi/sansSerif' 'dotAboveIJ'
CreateAccentedComposition 'i/compLigRight' null 'dotlessi/compLigRight' 'dotAboveIJ'
CreateAccentedComposition 'i' 'i' 'dotlessi' 'tittleAbove'
CreateAccentedComposition 'i/sansSerif' null 'dotlessi/sansSerif' 'tittleAbove'
CreateAccentedComposition 'i/compLigRight' null 'dotlessi/compLigRight' 'tittleAbove'
link-reduced-variant 'i/sansSerif' 'i' MathSansSerif

CreateAccentedComposition 'i.TRK' null 'dotlessi' 'dotAbove'

alias 'cyrl/iUkrainian' 0x456 'i'
CreateAccentedComposition 'cyrl/yi' 0x457 'dotlessi' 'dieresisAbove'

Expand All @@ -324,9 +326,9 @@ glyph-block Letter-Latin-Lower-I : begin
CreateAccentedComposition 'cyrl/ghe.SRB' null 'dotlessi/tailed' 'macronAbove'
CreateMultiAccentedComposition 'cyrl/gje.SRB' null 'dotlessi/tailed' { 'macronAbove' 'acuteAbove' }
CreateAccentedComposition 'dotlessiBarOver' null 'dotlessi' 'barOver'
CreateAccentedComposition 'iBarOver' 0x268 'dotlessiBarOver' 'dotAbove'
CreateAccentedComposition 'iOgonek' 0x12F 'iOgonek.dotless' 'dotAbove'
CreateAccentedComposition 'iRetroflexHook' 0x1D96 'dotlessiRetroflexHook' 'dotAbove'
CreateAccentedComposition 'iBarOver' 0x268 'dotlessiBarOver' 'tittleAbove'
CreateAccentedComposition 'iOgonek' 0x12F 'iOgonek.dotless' 'tittleAbove'
CreateAccentedComposition 'iRetroflexHook' 0x1D96 'dotlessiRetroflexHook' 'tittleAbove'

do "l glyphs"
select-variant 'l' 'l'
Expand Down
18 changes: 11 additions & 7 deletions packages/font-glyphs/src/letter/latin/lower-j.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -115,15 +115,19 @@ glyph-block Letter-Latin-Lower-J : begin
include : TopHook.mBarOuter xMiddle (XH + O) XH

select-variant 'dotlessj' 0x237
select-variant 'dotlessjBar' 0x25F (follow -- 'dotlessj')
select-variant 'dotlessjBarHookTop' 0x284 (follow -- 'dotlessj/sansSerif')

link-reduced-variant 'dotlessj/sansSerif' 'dotlessj' MathSansSerif
CreateAccentedComposition 'j' 'j' 'dotlessj' 'dotAboveIJ'
CreateAccentedComposition 'j/sansSerif' null 'dotlessj/sansSerif' 'dotAboveIJ'
CreateAccentedComposition 'grek/yot' 0x3F3 'dotlessj' 'dotAbove'
CreateAccentedComposition 'cyrl/je' 0x458 'dotlessj' 'dotAbove'
CreateAccentedComposition 'j' 'j' 'dotlessj' 'tittleAbove'
CreateAccentedComposition 'j/sansSerif' null 'dotlessj/sansSerif' 'tittleAbove'
link-reduced-variant 'j/sansSerif' 'j' MathSansSerif

select-variant 'dotlessjBar' 0x25F (follow -- 'dotlessj')
select-variant 'dotlessjBarHookTop' 0x284 (follow -- 'dotlessj/sansSerif')
CreateAccentedComposition 'jBar' 0x249 'dotlessjBar' 'tittleAbove'

alias 'grek/yot' 0x3F3 'j'
alias 'cyrl/je' 0x458 'j'

create-glyph 'dotlessjCurlyTail.serifless' : glyph-proc
include : MarkSet.p
set-base-anchor 'above' (Middle + JBalance) XH
Expand All @@ -143,7 +147,7 @@ glyph-block Letter-Latin-Lower-J : begin
include : HSerif.lt (Middle + JBalance) XH LongJut

select-variant 'dotlessjCurlyTail'
CreateAccentedComposition 'jCurlyTail' 0x29D 'dotlessjCurlyTail' 'dotAbove'
CreateAccentedComposition 'jCurlyTail' 0x29D 'dotlessjCurlyTail' 'tittleAbove'

create-glyph 'mathbb/dotlessj' : glyph-proc
include : MarkSet.p
Expand Down
2 changes: 1 addition & 1 deletion packages/font-glyphs/src/letter/shared.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ glyph-block Letter-Shared : begin
currentGlyph.includeMarkWithLeaningSupport gAccent LeaningAnchorMap

if (!gr) : begin
if (gnAccents.length === 1 && gnAccents.0 === 'dotAbove')
if (gnAccents.length === 1 && gnAccents.0 === 'tittleAbove')
: then : Dotless.set currentGlyph gnBase
: else : CvDecompose.set currentGlyph { gnSrc :: gnAccents }

Expand Down
2 changes: 1 addition & 1 deletion packages/font-glyphs/src/marks/above.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ glyph-block Mark-Above : begin
select-variant 'tripleDotAbove' 0x1AB4 (follow -- 'diacriticDot')
select-variant 'elipsisAbove' 0x20DB (follow -- 'diacriticDot')
select-variant 'fourDotsAbove' 0x20DC (follow -- 'diacriticDot')
select-variant 'dotAboveIJ' (shapeFrom -- "dotAbove") (follow -- 'ijDot')
select-variant 'tittleAbove' (shapeFrom -- "dotAbove") (follow -- 'tittle')

glyph-block-export RingDims RingShape
define [RingDims _radiusOut] : begin
Expand Down
1 change: 0 additions & 1 deletion packages/font-glyphs/src/meta/unicode-knowledge.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,6 @@ export : define decompOverrides : object
0x246 { 'E' 'longSlash' }
0x247 { 'e' 'shortSlash' }
0x248 { 'J' 'barOver' }
0x249 { 'j' 'barOver' }
0x24D { 'r' 'barOver' }
0x24F { 'y' 'hStrike' }

Expand Down
11 changes: 11 additions & 0 deletions packages/font-otl/src/gsub-locl.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ export : define [buildLOCL gsub para glyphStore] : begin
define cyrlMKD : gsub.copyLanguage 'cyrl_MKD ' 'cyrl_DFLT'
define cyrlBOS : gsub.copyLanguage 'cyrl_BOS ' 'cyrl_DFLT'
define cyrlBGR : gsub.copyLanguage 'cyrl_BGR ' 'cyrl_DFLT'
define latnTRK : gsub.copyLanguage 'latn_TRK ' 'latn_DFLT'
define latnAZE : gsub.copyLanguage 'latn_AZE ' 'latn_DFLT'
define latnVIT : gsub.copyLanguage 'latn_VIT ' 'latn_DFLT'
define grekIPPH : gsub.copyLanguage 'grek_IPPH ' 'grek_DFLT'
define grekAPPH : gsub.copyLanguage 'grek_APPH ' 'grek_DFLT'
Expand All @@ -30,6 +32,15 @@ export : define [buildLOCL gsub para glyphStore] : begin
define loclBGR : cyrlBGR.addFeature : gsub.createFeature 'locl'
loclBGR.addLookup : createGsubLookupFromGr gsub glyphStore LocalizedForm.BGR

# TRK
define loclTRK : gsub.createFeature 'locl'
latnTRK.addFeature loclTRK
latnAZE.addFeature loclTRK
loclTRK.addLookup : gsub.createLookup
.type 'gsub_single'
.substitutions : object
'i' : glyphStore.ensureExists 'i.TRK'

# VIT
define loclVIT : latnVIT.addFeature : gsub.createFeature 'locl'

Expand Down
27 changes: 14 additions & 13 deletions params/variants.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6784,21 +6784,21 @@ selector.nine = "straightBar"



[prime.ij-dot]
[prime.tittle]
sampler = "ij "
hotChars = "ij"
samplerExplain = "Dots in letters “i” and “j” in particular (not including dots in other letters, even if they are similar)"
tagKind = "dot"

[prime.ij-dot.variants.round]
[prime.tittle.variants.round]
rank = 1
description = "Dots and Commas in i/j are round"
selector.ijDot = "round"
description = "Dots in i/j are round"
selector.tittle = "round"

[prime.ij-dot.variants.square]
[prime.tittle.variants.square]
rank = 2
description = "Dots and Commas in i/j are square"
selector.ijDot = "square"
description = "Dots in i/j are square"
selector.tittle = "square"



Expand Down Expand Up @@ -7750,7 +7750,7 @@ seven = "straight-serifless"
eight = "crossing"
nine = "straight-bar"
# Dots
ij-dot = "round"
tittle = "round"
punctuation-dot = "round"
diacritic-dot = "round"
# Symbols
Expand Down Expand Up @@ -8062,7 +8062,7 @@ six = "closed-contour"
seven = "bend-serifed"
eight = "two-circles"
nine = "closed-contour"
ij-dot = "square"
tittle = "square"
punctuation-dot = "square"
diacritic-dot = "square"
asterisk = "hex-low"
Expand Down Expand Up @@ -8249,7 +8249,7 @@ four = "closed-serifless"
six = "closed-contour"
eight = "two-circles"
nine = "closed-contour"
ij-dot = "square"
tittle = "square"
punctuation-dot = "square"
diacritic-dot = "square"
asterisk = "hex-low"
Expand Down Expand Up @@ -8427,7 +8427,7 @@ six = "closed-contour"
seven = "bend-serifless"
eight = "two-circles"
nine = "closed-contour"
ij-dot = "square"
tittle = "square"
punctuation-dot = "square"
diacritic-dot = "square"
brace = "straight"
Expand Down Expand Up @@ -8811,6 +8811,7 @@ lower-tau = "flat-tailed"
one = "base-flat-top-serif"
four = "closed-serifless"
eight = "two-circles"
tittle = "square"
underscore = "low"
guillemet = "straight"
dollar = "through-cap"
Expand Down Expand Up @@ -9039,7 +9040,7 @@ six = "closed-contour"
seven = "bend-serifless"
eight = "crossing-asymmetric"
nine = "closed-contour"
ij-dot = "square"
tittle = "square"
punctuation-dot = "square"
diacritic-dot = "square"
paren = "large-contour"
Expand Down Expand Up @@ -9449,7 +9450,7 @@ five = "oblique-arched-serifless"
six = "closed-contour"
seven = "straight-serifed"
nine = "closed-contour"
ij-dot = "square"
tittle = "square"
punctuation-dot = "square"
diacritic-dot = "square"
asterisk = "hex-low"
Expand Down
4 changes: 2 additions & 2 deletions tools/generate-samples/src/templates/languages.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import * as themes from "../themes/index.mjs";
const languages = [
{ lang: 'English', sample: 'Shaw, those twelve beige hooks are joined if I patch a young, gooey mouth.' },
{ lang: 'IPA', sample: '[ɢʷɯʔ.nas.doːŋ.kʰlja] [ŋan.ȵʑi̯wo.ɕi̯uĕn.ɣwa]', localeId :'en-fonipa' },
{ lang: 'Azerbaijani', sample: 'Zəfər, jaketini də papağını da götür, bu axşam hava çox soyuq olacaq.' },
{ lang: 'Azerbaijani', sample: 'Zəfər, jaketini də papağını da götür, bu axşam hava çox soyuq olacaq.', localeId :'az' },
{ lang: 'Belarusian', sample: 'У Іўі худы жвавы чорт у зялёнай камізэльцы пабег пад’есці фаршу з юшкай.' },
{ lang: 'Bulgarian', sample: 'Я, пазачът Вальо уж бди, а скришом хапва кюфтенца зад щайгите.', localeId :'bg' },
{ lang: 'Catalan', sample: '«Dóna amor que seràs feliç!». Això, iŀlús company geniüt, ja és un lluït rètol blavís d’onze kWh.' },
Expand Down Expand Up @@ -35,7 +35,7 @@ const languages = [
{ lang: 'Slovak', sample: 'Kŕdeľ šťastných ďatľov učí pri ústí Váhu mĺkveho koňa obhrýzať kôru a žrať čerstvé mäso.' },
{ lang: 'Spanish', sample: 'Benjamín pidió una bebida de kiwi y fresa; Noé, sin vergüenza, la más exquisita champaña del menú.' },
{ lang: 'Swedish', sample: 'Yxmördaren Julia Blomqvist på fäktning i Schweiz.' },
{ lang: 'Turkish', sample: 'Pijamalı hasta yağız şoföre çabucak güvendi.' },
{ lang: 'Turkish', sample: 'Pijamalı hasta yağız şoföre çabucak güvendi.', localeId :'tr' },
{ lang: 'Ukrainian', sample: 'Чуєш їх, доцю, га? Кумедна ж ти, прощайся без ґольфів!' },
{ lang: 'Vietnamese', sample: 'Do bạch kim rất quý nên sẽ dùng để lắp vô xương.', localeId :'vi' },
{ lang: 'Volapük', sample: 'Ꞝrꞛtom jofazaris hodagudik ꞟf binoy ve cꞛl ad xilapel.' },
Expand Down

0 comments on commit ff58ccd

Please sign in to comment.