refactor ligatures and build script
This commit is contained in:
parent
931f495aac
commit
691f82940c
14 changed files with 16202 additions and 16276 deletions
21
README.md
21
README.md
|
@ -22,26 +22,7 @@ Base on `Jetbrains Mono` and **much "Opinioned"**
|
||||||
|
|
||||||
- Round corner
|
- Round corner
|
||||||
- New shape of `@ $ % & Q a` and cursive italic `f i j k l x y`
|
- New shape of `@ $ % & Q a` and cursive italic `f i j k l x y`
|
||||||
- Large amount of ligatures
|
- Large amount of ligatures, see in [`features/`](./source/features/README.md)
|
||||||
- equal variants: `==` / `===` / `!=` / `!==` / `>=` / `<=`...
|
|
||||||
- arrow variants: `->` / `=>` / `-->` / `==>` / `<->` / `<=>`...
|
|
||||||
- xml variants: `</` / `/>` / `<>` / `</>` / `<!--`...
|
|
||||||
- flow variants: `|>` / `||>` / `|||>` / `|||>` / `>=>` / `=>>`...
|
|
||||||
- same characters: `++` / `--` / `&&` / `||` / `!!` / `??` / `..` / `::` / `########`...
|
|
||||||
- plain text tag: `[TODO]` / `todo))` / `[FIXME]` / `fixme))`
|
|
||||||
- for logger: `[TRACE]` / `[DEBUG]` / `[INFO]` / `[WARN]` / `[ERROR]` / `[FATAL]`
|
|
||||||
- Font features
|
|
||||||
- zero: dot style `0`
|
|
||||||
- cv01: Classic `@` / `$` / `%` / `&` / `Q` / `=>` / `->`
|
|
||||||
- cv02: Alternative `a` (with top alarm)
|
|
||||||
- cv03: Alternative `i` (without bottom left bar)
|
|
||||||
- cv04: Alternative `l` (with bottom left bar) and `1` (without bottom bar)
|
|
||||||
- cv98: Full width `…`(ellipsis) and `—`(emdash) support for Maple Mono NF CN
|
|
||||||
- cv99: Traditional punctuations support for Maple Mono NF CN
|
|
||||||
- ss01: Non-cursive italic style `l i j k x`
|
|
||||||
- ss02: Disable ligautures on equals like `==` / `!=` / `<=`
|
|
||||||
- ss03: Ignore cases on all tags
|
|
||||||
- ss04: Disable ligatures on `__`, `#__`, `\n`
|
|
||||||
|
|
||||||
## Build
|
## Build
|
||||||
|
|
||||||
|
|
22
config.json
22
config.json
|
@ -8,25 +8,21 @@
|
||||||
"cv02": "ignore",
|
"cv02": "ignore",
|
||||||
"cv03": "ignore",
|
"cv03": "ignore",
|
||||||
"cv04": "ignore",
|
"cv04": "ignore",
|
||||||
|
"cv31": "ignore",
|
||||||
|
"cv32": "ignore",
|
||||||
|
"cv33": "ignore",
|
||||||
|
"cv34": "ignore",
|
||||||
|
"cv35": "ignore",
|
||||||
|
"cv36": "ignore",
|
||||||
"cv98": "ignore",
|
"cv98": "ignore",
|
||||||
"cv99": "ignore",
|
"cv99": "ignore",
|
||||||
"ss01": "ignore",
|
"ss01": "ignore",
|
||||||
"ss02": "ignore",
|
"ss02": "ignore",
|
||||||
"ss03": "ignore",
|
"ss03": "ignore",
|
||||||
"ss04": "ignore",
|
"ss04": "ignore",
|
||||||
"zero": "ignore"
|
"ss05": "ignore",
|
||||||
},
|
"ss06": "ignore",
|
||||||
"feature_freeze_italic": {
|
"ss07": "ignore",
|
||||||
"cv01": "ignore",
|
|
||||||
"cv02": "ignore",
|
|
||||||
"cv03": "ignore",
|
|
||||||
"cv04": "ignore",
|
|
||||||
"cv98": "ignore",
|
|
||||||
"cv99": "ignore",
|
|
||||||
"ss01": "ignore",
|
|
||||||
"ss02": "ignore",
|
|
||||||
"ss03": "ignore",
|
|
||||||
"ss04": "ignore",
|
|
||||||
"zero": "ignore"
|
"zero": "ignore"
|
||||||
},
|
},
|
||||||
"nerd_font": {
|
"nerd_font": {
|
||||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
183
source/features/README.md
Normal file
183
source/features/README.md
Normal file
|
@ -0,0 +1,183 @@
|
||||||
|
# Ligatures And Features
|
||||||
|
|
||||||
|
Here is the basic list and explaination of Maple Mono ligatures and features.
|
||||||
|
|
||||||
|
For more details, please check out `.fea` files and [OpenType Feature Spec](https://adobe-type-tools.github.io/afdko/OpenTypeFeatureFileSpecification.html).
|
||||||
|
|
||||||
|
### calt
|
||||||
|
|
||||||
|
```
|
||||||
|
{{
|
||||||
|
}}
|
||||||
|
{{--
|
||||||
|
--}}
|
||||||
|
{|
|
||||||
|
|}
|
||||||
|
[|
|
||||||
|
|]
|
||||||
|
//
|
||||||
|
///
|
||||||
|
/*
|
||||||
|
/**
|
||||||
|
++
|
||||||
|
+++
|
||||||
|
.?
|
||||||
|
..
|
||||||
|
...
|
||||||
|
..<
|
||||||
|
<!--
|
||||||
|
<<-
|
||||||
|
<-
|
||||||
|
<#--
|
||||||
|
<>
|
||||||
|
<:
|
||||||
|
<:<
|
||||||
|
>:>
|
||||||
|
<<
|
||||||
|
<<<
|
||||||
|
>>
|
||||||
|
>>>
|
||||||
|
<=>
|
||||||
|
<->
|
||||||
|
<|||
|
||||||
|
<||
|
||||||
|
<|
|
||||||
|
<|>
|
||||||
|
||>
|
||||||
|
|>
|
||||||
|
-|
|
||||||
|
->>
|
||||||
|
-->
|
||||||
|
->
|
||||||
|
>=
|
||||||
|
<=
|
||||||
|
<<=
|
||||||
|
<==
|
||||||
|
!=
|
||||||
|
!!
|
||||||
|
!==
|
||||||
|
=!=
|
||||||
|
=>
|
||||||
|
==
|
||||||
|
=:=
|
||||||
|
:=:
|
||||||
|
:=
|
||||||
|
:>
|
||||||
|
:<
|
||||||
|
::
|
||||||
|
;;
|
||||||
|
;;;
|
||||||
|
:?
|
||||||
|
:?>
|
||||||
|
::=
|
||||||
|
||-
|
||||||
|
||=
|
||||||
|
|-
|
||||||
|
|=
|
||||||
|
||
|
||||||
|
--
|
||||||
|
---
|
||||||
|
<--
|
||||||
|
??
|
||||||
|
???
|
||||||
|
?:
|
||||||
|
?.
|
||||||
|
&&
|
||||||
|
__
|
||||||
|
=/=
|
||||||
|
<-<
|
||||||
|
<=<
|
||||||
|
<==>
|
||||||
|
==>
|
||||||
|
=>>
|
||||||
|
>=>
|
||||||
|
>>=
|
||||||
|
>>-
|
||||||
|
-<
|
||||||
|
-<<
|
||||||
|
<-|
|
||||||
|
<=|
|
||||||
|
|=>
|
||||||
|
>-
|
||||||
|
<~
|
||||||
|
~~
|
||||||
|
<~>
|
||||||
|
<~~
|
||||||
|
-~
|
||||||
|
~~>
|
||||||
|
~>
|
||||||
|
~-
|
||||||
|
~@
|
||||||
|
<+>
|
||||||
|
<+
|
||||||
|
+>
|
||||||
|
<*>
|
||||||
|
<*
|
||||||
|
*>
|
||||||
|
</>
|
||||||
|
</
|
||||||
|
/>
|
||||||
|
<<
|
||||||
|
<<<
|
||||||
|
>>
|
||||||
|
>>>
|
||||||
|
#{
|
||||||
|
#[
|
||||||
|
#(
|
||||||
|
#?
|
||||||
|
#_
|
||||||
|
#__
|
||||||
|
#:
|
||||||
|
#=
|
||||||
|
#_(
|
||||||
|
]#
|
||||||
|
0x12
|
||||||
|
[TRACE]
|
||||||
|
[DEBUG]
|
||||||
|
[INFO]
|
||||||
|
[WARN]
|
||||||
|
[ERROR]
|
||||||
|
[FATAL]
|
||||||
|
[TODO]
|
||||||
|
todo))
|
||||||
|
[FIXME]
|
||||||
|
fixme))
|
||||||
|
########
|
||||||
|
<!---->
|
||||||
|
\\
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Notice
|
||||||
|
|
||||||
|
- `<<` / `<<<` should have tailing space, `>>` / `>>>` should have heading space
|
||||||
|
|
||||||
|
### Character Varients (cvXX)
|
||||||
|
|
||||||
|
- zero: `0` with dot style
|
||||||
|
- cv01: `@ $ & % Q => ->` without gap
|
||||||
|
- cv02: `a` with top arm
|
||||||
|
- cv03: `i` without left bottom bar
|
||||||
|
- cv04: `l` with left bottom bar, like consolas, will be overrided by cv35 in italic style
|
||||||
|
|
||||||
|
#### Italic Only
|
||||||
|
- cv31: italic `a` with top arm
|
||||||
|
- cv32: italic `f` without bottom tail
|
||||||
|
- cv33: italic `i j` with left bottom bar and horizen top bar
|
||||||
|
- cv34: italic `k` without circle
|
||||||
|
- cv35: italic `l` without tail
|
||||||
|
- cv36: italic `x` without tail
|
||||||
|
|
||||||
|
#### CN Only
|
||||||
|
|
||||||
|
- cv98: Full width `…`(ellipsis) and `—`(emdash)
|
||||||
|
- cv99: Traditional punctuations
|
||||||
|
|
||||||
|
### Style Sets (ssXX)
|
||||||
|
|
||||||
|
- ss01: Broken equals ligatures (`==`, `===`, `!=`, `!==`, `=/=`)
|
||||||
|
- ss02: Broken compare and equal ligatures (`<=`, `>=`)
|
||||||
|
- ss03: Enable arbitrary tag (allow to use any case letters in all tags)
|
||||||
|
- ss04: Break multiple underscores (`__`, `#__`)
|
||||||
|
- ss05: Thin backslash in escape letters (`\w`, `\n`, `\r` ...)
|
||||||
|
- ss06: Remove connected strokes between italic letters (`al`, `ul`, `il` ...)
|
||||||
|
- ss07: Make space optional in multiple less or greater (`<<`, `>>`, `<<<`, `>>>`)
|
|
@ -4,7 +4,7 @@
|
||||||
@Digit = [zero zero.zero one two three four five six seven eight nine];
|
@Digit = [zero zero.zero one two three four five six seven eight nine];
|
||||||
@DigitHex = [a b c d e f A B C D E F];
|
@DigitHex = [a b c d e f A B C D E F];
|
||||||
@SpaceExlusion = [space bullet periodcentered period];
|
@SpaceExlusion = [space bullet periodcentered period];
|
||||||
@a = [A a a.cv02];
|
@a = [A a a.cv31];
|
||||||
@b = [B b];
|
@b = [B b];
|
||||||
@c = [C c];
|
@c = [C c];
|
||||||
@d = [D d];
|
@d = [D d];
|
||||||
|
@ -12,10 +12,10 @@
|
||||||
@f = [F f];
|
@f = [F f];
|
||||||
@g = [G g];
|
@g = [G g];
|
||||||
@h = [H h];
|
@h = [H h];
|
||||||
@i = [I i i.ss01];
|
@i = [I i i.cv33];
|
||||||
@j = [J j j.ss01];
|
@j = [J j j.cv33];
|
||||||
@k = [K k k.ss01];
|
@k = [K k k.cv34];
|
||||||
@l = [L l l.cv04 l.ss01];
|
@l = [L l l.cv35];
|
||||||
@m = [M m];
|
@m = [M m];
|
||||||
@n = [N n];
|
@n = [N n];
|
||||||
@o = [O o];
|
@o = [O o];
|
||||||
|
@ -27,12 +27,13 @@
|
||||||
@u = [U u];
|
@u = [U u];
|
||||||
@v = [V v];
|
@v = [V v];
|
||||||
@w = [W w];
|
@w = [W w];
|
||||||
@x = [X x x.ss01];
|
@x = [X x x.cv36];
|
||||||
@y = [Y y];
|
@y = [Y y];
|
||||||
@z = [Z z];
|
@z = [Z z];
|
||||||
@zero = [zero zero.zero];
|
@zero = [zero zero.zero];
|
||||||
@escape = [backslash slash @Digit b B c d D f k n p P r s S t u w W v x dollar period asterisk asciitilde question bar quotesingle quotedbl bracketleft bracketright parenleft parenright braceleft braceright grave comma];
|
@escape_letter = [@Digit b B c d D f k n p P r s S t u w W v x];
|
||||||
@a_l = [a_l.liga a_l.liga.cv02 a_l.liga.cv04 a_l.liga.cv02.cv04 a_l.liga.ss01 a_l.liga.cv02.ss01];
|
@escape_punctuation = [backslash slash dollar period asterisk asciitilde question bar quotesingle quotedbl bracketleft bracketright parenleft parenright braceleft braceright grave comma];
|
||||||
|
@a_l = [a_l.liga a_l.liga.cv31 a_l.liga.cv35 a_l.liga.cv31.cv35 a_l.liga.cv04 a_l.liga.cv04.cv31 a_l.liga.ss06];
|
||||||
#/< otclasses
|
#/< otclasses
|
||||||
#< classes
|
#< classes
|
||||||
|
|
||||||
|
@ -219,7 +220,7 @@ feature calt {
|
||||||
sub plus' plus plus by SPC;
|
sub plus' plus plus by SPC;
|
||||||
} plus_plus_plus.liga;
|
} plus_plus_plus.liga;
|
||||||
|
|
||||||
# .?
|
# .? Zig
|
||||||
lookup period_question.liga {
|
lookup period_question.liga {
|
||||||
ignore sub period period' question;
|
ignore sub period period' question;
|
||||||
ignore sub period' question question;
|
ignore sub period' question question;
|
||||||
|
@ -245,7 +246,7 @@ feature calt {
|
||||||
sub period' period period by SPC;
|
sub period' period period by SPC;
|
||||||
} period_period_period.liga;
|
} period_period_period.liga;
|
||||||
|
|
||||||
# ..<
|
# ..< Swift
|
||||||
lookup period_period_less.liga {
|
lookup period_period_less.liga {
|
||||||
ignore sub period period' period less;
|
ignore sub period period' period less;
|
||||||
ignore sub period' period less [less slash greater];
|
ignore sub period' period less [less slash greater];
|
||||||
|
@ -333,25 +334,18 @@ feature calt {
|
||||||
sub greater' colon greater by SPC;
|
sub greater' colon greater by SPC;
|
||||||
} greater_colon_greater.liga;
|
} greater_colon_greater.liga;
|
||||||
|
|
||||||
# <<
|
# << with tailing space
|
||||||
lookup less_less.liga {
|
lookup less_less.liga {
|
||||||
ignore sub less less' less;
|
ignore sub less less' less space;
|
||||||
ignore sub hyphen less' less;
|
sub SPC less' space by less_less.liga;
|
||||||
ignore sub equal less' less;
|
sub less' less space by SPC;
|
||||||
ignore sub less' less less;
|
|
||||||
ignore sub less' less equal;
|
|
||||||
ignore sub less' less asciitilde;
|
|
||||||
sub SPC less' by less_less.liga;
|
|
||||||
sub less' less by SPC;
|
|
||||||
} less_less.liga;
|
} less_less.liga;
|
||||||
|
|
||||||
# <<<
|
# <<< with tailing space
|
||||||
lookup less_less_less.liga {
|
lookup less_less_less.liga {
|
||||||
ignore sub less less' less less;
|
sub SPC SPC less' space by less_less_less.liga;
|
||||||
ignore sub less' less less less;
|
sub SPC less' less space by SPC;
|
||||||
sub SPC SPC less' by less_less_less.liga;
|
sub less' less less space by SPC;
|
||||||
sub SPC less' less by SPC;
|
|
||||||
sub less' less less by SPC;
|
|
||||||
} less_less_less.liga;
|
} less_less_less.liga;
|
||||||
|
|
||||||
# <=>
|
# <=>
|
||||||
|
@ -414,7 +408,7 @@ feature calt {
|
||||||
# ->>
|
# ->>
|
||||||
lookup hyphen_greater_greater.liga {
|
lookup hyphen_greater_greater.liga {
|
||||||
ignore sub hyphen hyphen' greater greater;
|
ignore sub hyphen hyphen' greater greater;
|
||||||
ignore sub hyphen' greater greater greater;
|
ignore sub hyphen' greater greater [greater hyphen];
|
||||||
sub SPC SPC greater' by hyphen_greater_greater.liga;
|
sub SPC SPC greater' by hyphen_greater_greater.liga;
|
||||||
sub SPC greater' greater by SPC;
|
sub SPC greater' greater by SPC;
|
||||||
sub hyphen' greater greater by SPC;
|
sub hyphen' greater greater by SPC;
|
||||||
|
@ -442,26 +436,21 @@ feature calt {
|
||||||
sub hyphen' greater by SPC;
|
sub hyphen' greater by SPC;
|
||||||
} hyphen_greater.liga;
|
} hyphen_greater.liga;
|
||||||
|
|
||||||
# >>
|
# >> with heading space
|
||||||
lookup greater_greater.liga {
|
lookup greater_greater.liga {
|
||||||
ignore sub greater greater' greater;
|
ignore sub greater greater' greater;
|
||||||
ignore sub greater' greater greater;
|
ignore sub greater' greater [greater equal hyphen];
|
||||||
ignore sub greater' greater equal;
|
ignore sub [equal slash less] greater' greater;
|
||||||
ignore sub greater' greater hyphen;
|
sub space SPC greater' by greater_greater.liga;
|
||||||
ignore sub equal greater' greater;
|
sub space greater' greater by SPC;
|
||||||
ignore sub slash greater' greater;
|
|
||||||
ignore sub less greater' greater;
|
|
||||||
sub SPC greater' by greater_greater.liga;
|
|
||||||
sub greater' greater by SPC;
|
|
||||||
} greater_greater.liga;
|
} greater_greater.liga;
|
||||||
|
|
||||||
# >>>
|
# >>> with heading space
|
||||||
lookup greater_greater_greater.liga {
|
lookup greater_greater_greater.liga {
|
||||||
ignore sub greater greater' greater greater;
|
|
||||||
ignore sub greater' greater greater greater;
|
ignore sub greater' greater greater greater;
|
||||||
sub SPC SPC greater' by greater_greater_greater.liga;
|
sub space SPC SPC greater' by greater_greater_greater.liga;
|
||||||
sub SPC greater' greater by SPC;
|
sub space SPC greater' greater by SPC;
|
||||||
sub greater' greater greater by SPC;
|
sub space greater' greater greater by SPC;
|
||||||
} greater_greater_greater.liga;
|
} greater_greater_greater.liga;
|
||||||
|
|
||||||
# >=
|
# >=
|
||||||
|
@ -810,7 +799,7 @@ feature calt {
|
||||||
# <--
|
# <--
|
||||||
lookup less_hyphen_hyphen.liga {
|
lookup less_hyphen_hyphen.liga {
|
||||||
ignore sub less less' hyphen hyphen;
|
ignore sub less less' hyphen hyphen;
|
||||||
ignore sub less' hyphen hyphen hyphen;
|
ignore sub less' hyphen hyphen [hyphen greater less];
|
||||||
sub SPC SPC hyphen' by less_hyphen_hyphen.liga;
|
sub SPC SPC hyphen' by less_hyphen_hyphen.liga;
|
||||||
sub SPC hyphen' hyphen by SPC;
|
sub SPC hyphen' hyphen by SPC;
|
||||||
sub less' hyphen hyphen by SPC;
|
sub less' hyphen hyphen by SPC;
|
||||||
|
@ -852,7 +841,7 @@ feature calt {
|
||||||
sub question' colon by SPC;
|
sub question' colon by SPC;
|
||||||
} question_colon.liga;
|
} question_colon.liga;
|
||||||
|
|
||||||
# ?.
|
# ?. TypeScript / Rust
|
||||||
lookup question_period.liga {
|
lookup question_period.liga {
|
||||||
ignore sub question question' period;
|
ignore sub question question' period;
|
||||||
ignore sub question' period period;
|
ignore sub question' period period;
|
||||||
|
@ -915,7 +904,7 @@ feature calt {
|
||||||
|
|
||||||
# <=<
|
# <=<
|
||||||
lookup less_equal_less.liga {
|
lookup less_equal_less.liga {
|
||||||
ignore sub less less' equal less;
|
ignore sub [less equal] less' equal less;
|
||||||
ignore sub parenleft question less' equal less;
|
ignore sub parenleft question less' equal less;
|
||||||
ignore sub less' equal less [less equal];
|
ignore sub less' equal less [less equal];
|
||||||
sub SPC SPC less' by less_equal_less.liga;
|
sub SPC SPC less' by less_equal_less.liga;
|
||||||
|
@ -958,7 +947,7 @@ feature calt {
|
||||||
|
|
||||||
# >=>
|
# >=>
|
||||||
lookup greater_equal_greater.liga {
|
lookup greater_equal_greater.liga {
|
||||||
ignore sub greater greater' equal greater;
|
ignore sub [greater equal] greater' equal greater;
|
||||||
ignore sub greater' equal greater [greater equal];
|
ignore sub greater' equal greater [greater equal];
|
||||||
sub SPC SPC greater' by greater_equal_greater.liga;
|
sub SPC SPC greater' by greater_equal_greater.liga;
|
||||||
sub SPC equal' greater by SPC;
|
sub SPC equal' greater by SPC;
|
||||||
|
@ -1455,9 +1444,11 @@ feature calt {
|
||||||
sub less' exclam hyphen hyphen hyphen hyphen greater by SPC;
|
sub less' exclam hyphen hyphen hyphen hyphen greater by SPC;
|
||||||
} xml_empty_comment.liga;
|
} xml_empty_comment.liga;
|
||||||
|
|
||||||
|
# \\ \. \? \$ ...
|
||||||
lookup escape {
|
lookup escape {
|
||||||
ignore sub backslash.liga backslash' @escape;
|
ignore sub backslash.liga backslash' @escape_punctuation;
|
||||||
sub backslash' @escape by backslash.liga;
|
ignore sub backslash' percent percent;
|
||||||
|
sub backslash' @escape_punctuation by backslash.liga;
|
||||||
} escape;
|
} escape;
|
||||||
|
|
||||||
# ================[III]================
|
# ================[III]================
|
||||||
|
@ -1745,8 +1736,6 @@ feature cv01 {
|
||||||
sub equal_equal_greater.liga by equal_equal_greater.liga.cv01;
|
sub equal_equal_greater.liga by equal_equal_greater.liga.cv01;
|
||||||
sub less_equal_equal_greater.liga by less_equal_equal_greater.liga.cv01;
|
sub less_equal_equal_greater.liga by less_equal_equal_greater.liga.cv01;
|
||||||
sub less_equal_greater.liga by less_equal_greater.liga.cv01;
|
sub less_equal_greater.liga by less_equal_greater.liga.cv01;
|
||||||
sub less_less_equal.liga by less_less_equal.liga.cv01;
|
|
||||||
sub equal_greater_greater.liga by equal_greater_greater.liga.cv01;
|
|
||||||
sub less_equal_less.liga by less_equal_less.liga.cv01;
|
sub less_equal_less.liga by less_equal_less.liga.cv01;
|
||||||
sub greater_equal_greater.liga by greater_equal_greater.liga.cv01;
|
sub greater_equal_greater.liga by greater_equal_greater.liga.cv01;
|
||||||
sub less_equal_bar.liga by less_equal_bar.liga.cv01;
|
sub less_equal_bar.liga by less_equal_bar.liga.cv01;
|
||||||
|
@ -1760,46 +1749,11 @@ feature cv01 {
|
||||||
sub less_hyphen_less.liga by less_hyphen_less.liga.cv01;
|
sub less_hyphen_less.liga by less_hyphen_less.liga.cv01;
|
||||||
sub greater_hyphen_greater.liga by greater_hyphen_greater.liga.cv01;
|
sub greater_hyphen_greater.liga by greater_hyphen_greater.liga.cv01;
|
||||||
sub less_hyphen_greater.liga by less_hyphen_greater.liga.cv01;
|
sub less_hyphen_greater.liga by less_hyphen_greater.liga.cv01;
|
||||||
sub less_less_hyphen.liga by less_less_hyphen.liga.cv01;
|
|
||||||
sub hyphen_greater_greater.liga by hyphen_greater_greater.liga.cv01;
|
|
||||||
|
|
||||||
sub less_exclam_hyphen_hyphen.liga by less_exclam_hyphen_hyphen.liga.cv01;
|
sub less_exclam_hyphen_hyphen.liga by less_exclam_hyphen_hyphen.liga.cv01;
|
||||||
sub less_numbersign_hyphen_hyphen.liga by less_numbersign_hyphen_hyphen.liga.cv01;
|
sub less_numbersign_hyphen_hyphen.liga by less_numbersign_hyphen_hyphen.liga.cv01;
|
||||||
sub xml_empty_comment.liga by xml_empty_comment.liga.cv01;
|
sub xml_empty_comment.liga by xml_empty_comment.liga.cv01;
|
||||||
} cv01;
|
} cv01;
|
||||||
feature cv02 {
|
|
||||||
sub a by a.cv02;
|
|
||||||
sub aacute by aacute.cv02;
|
|
||||||
sub abreve by abreve.cv02;
|
|
||||||
sub abreveacute by abreveacute.cv02;
|
|
||||||
sub abrevedotbelow by abrevedotbelow.cv02;
|
|
||||||
sub abrevegrave by abrevegrave.cv02;
|
|
||||||
sub abrevehookabove by abrevehookabove.cv02;
|
|
||||||
sub abrevetilde by abrevetilde.cv02;
|
|
||||||
sub acaron by acaron.cv02;
|
|
||||||
sub acircumflex by acircumflex.cv02;
|
|
||||||
sub acircumflexacute by acircumflexacute.cv02;
|
|
||||||
sub acircumflexdotbelow by acircumflexdotbelow.cv02;
|
|
||||||
sub acircumflexgrave by acircumflexgrave.cv02;
|
|
||||||
sub acircumflexhookabove by acircumflexhookabove.cv02;
|
|
||||||
sub acircumflextilde by acircumflextilde.cv02;
|
|
||||||
sub adieresis by adieresis.cv02;
|
|
||||||
sub adotbelow by adotbelow.cv02;
|
|
||||||
sub agrave by agrave.cv02;
|
|
||||||
sub ahookabove by ahookabove.cv02;
|
|
||||||
sub amacron by amacron.cv02;
|
|
||||||
sub aogonek by aogonek.cv02;
|
|
||||||
sub aring by aring.cv02;
|
|
||||||
sub atilde by atilde.cv02;
|
|
||||||
sub ordfeminine by ordfeminine.cv02;
|
|
||||||
|
|
||||||
# ================[III]================
|
|
||||||
|
|
||||||
sub a_l.liga by a_l.liga.cv02;
|
|
||||||
sub a_l_l.liga by a_l_l.liga.cv02;
|
|
||||||
|
|
||||||
# =====================================
|
|
||||||
} cv02;
|
|
||||||
|
|
||||||
feature cv04 {
|
feature cv04 {
|
||||||
sub l by l.cv04;
|
sub l by l.cv04;
|
||||||
|
@ -1809,11 +1763,9 @@ feature cv04 {
|
||||||
sub ldot by ldot.cv04;
|
sub ldot by ldot.cv04;
|
||||||
sub lslash by lslash.cv04;
|
sub lslash by lslash.cv04;
|
||||||
sub one by one.cv04;
|
sub one by one.cv04;
|
||||||
# ================[III]================
|
|
||||||
|
|
||||||
sub C_l.liga by C_l.liga.cv04;
|
sub C_l.liga by C_l.liga.cv04;
|
||||||
sub a_l.liga by a_l.liga.cv04;
|
sub a_l.liga by a_l.liga.cv04;
|
||||||
sub a_l.liga.cv02 by a_l.liga.cv02.cv04;
|
|
||||||
sub c_l.liga by c_l.liga.cv04;
|
sub c_l.liga by c_l.liga.cv04;
|
||||||
sub e_l.liga by e_l.liga.cv04;
|
sub e_l.liga by e_l.liga.cv04;
|
||||||
sub i_l.liga by i_l.liga.cv04;
|
sub i_l.liga by i_l.liga.cv04;
|
||||||
|
@ -1821,76 +1773,148 @@ feature cv04 {
|
||||||
sub t_l.liga by t_l.liga.cv04;
|
sub t_l.liga by t_l.liga.cv04;
|
||||||
sub u_l.liga by u_l.liga.cv04;
|
sub u_l.liga by u_l.liga.cv04;
|
||||||
sub a_l_l.liga by a_l_l.liga.cv04;
|
sub a_l_l.liga by a_l_l.liga.cv04;
|
||||||
sub a_l_l.liga.cv02 by a_l_l.liga.cv02.cv04;
|
|
||||||
sub e_l_l.liga by e_l_l.liga.cv04;
|
sub e_l_l.liga by e_l_l.liga.cv04;
|
||||||
sub i_l_l.liga by i_l_l.liga.cv04;
|
sub i_l_l.liga by i_l_l.liga.cv04;
|
||||||
sub u_l_l.liga by u_l_l.liga.cv04;
|
sub u_l_l.liga by u_l_l.liga.cv04;
|
||||||
|
|
||||||
# =====================================
|
|
||||||
} cv04;
|
} cv04;
|
||||||
|
|
||||||
# ================[III]================
|
feature cv31 {
|
||||||
|
sub a by a.cv31;
|
||||||
|
sub aacute by aacute.cv31;
|
||||||
|
sub abreve by abreve.cv31;
|
||||||
|
sub abreveacute by abreveacute.cv31;
|
||||||
|
sub abrevedotbelow by abrevedotbelow.cv31;
|
||||||
|
sub abrevegrave by abrevegrave.cv31;
|
||||||
|
sub abrevehookabove by abrevehookabove.cv31;
|
||||||
|
sub abrevetilde by abrevetilde.cv31;
|
||||||
|
sub acaron by acaron.cv31;
|
||||||
|
sub acircumflex by acircumflex.cv31;
|
||||||
|
sub acircumflexacute by acircumflexacute.cv31;
|
||||||
|
sub acircumflexdotbelow by acircumflexdotbelow.cv31;
|
||||||
|
sub acircumflexgrave by acircumflexgrave.cv31;
|
||||||
|
sub acircumflexhookabove by acircumflexhookabove.cv31;
|
||||||
|
sub acircumflextilde by acircumflextilde.cv31;
|
||||||
|
sub adieresis by adieresis.cv31;
|
||||||
|
sub adotbelow by adotbelow.cv31;
|
||||||
|
sub agrave by agrave.cv31;
|
||||||
|
sub ahookabove by ahookabove.cv31;
|
||||||
|
sub amacron by amacron.cv31;
|
||||||
|
sub aogonek by aogonek.cv31;
|
||||||
|
sub aring by aring.cv31;
|
||||||
|
sub atilde by atilde.cv31;
|
||||||
|
sub ordfeminine by ordfeminine.cv31;
|
||||||
|
|
||||||
|
sub a_l.liga by a_l.liga.cv31;
|
||||||
|
sub a_l_l.liga by a_l_l.liga.cv31;
|
||||||
|
sub a_l.liga.cv04 by a_l.liga.cv04.cv31;
|
||||||
|
sub a_l_l.liga.cv04 by a_l_l.liga.cv04.cv31;
|
||||||
|
} cv31;
|
||||||
|
|
||||||
|
feature cv32 {
|
||||||
|
sub f by f.cv32;
|
||||||
|
sub f_f.liga by f_f.liga.cv32;
|
||||||
|
} cv32;
|
||||||
|
|
||||||
|
feature cv33 {
|
||||||
|
sub i by i.cv33;
|
||||||
|
sub iacute by iacute.cv33;
|
||||||
|
sub ibreve by ibreve.cv33;
|
||||||
|
sub icaron by icaron.cv33;
|
||||||
|
sub icircumflex by icircumflex.cv33;
|
||||||
|
sub idieresis by idieresis.cv33;
|
||||||
|
sub idotbelow by idotbelow.cv33;
|
||||||
|
sub idotless by idotless.cv33;
|
||||||
|
sub igrave by igrave.cv33;
|
||||||
|
sub ihookabove by ihookabove.cv33;
|
||||||
|
sub imacron by imacron.cv33;
|
||||||
|
sub iogonek by iogonek.cv33;
|
||||||
|
sub itilde by itilde.cv33;
|
||||||
|
|
||||||
|
sub j by j.cv33;
|
||||||
|
sub jcircumflex by jcircumflex.cv33;
|
||||||
|
sub jdotless by jdotless.cv33;
|
||||||
|
|
||||||
|
sub i_l.liga by i_l.liga.cv33;
|
||||||
|
sub i_l_l.liga by i_l_l.liga.cv33;
|
||||||
|
sub i_l_l.liga.cv04 by i_l_l.liga.cv04.cv33;
|
||||||
|
} cv33;
|
||||||
|
|
||||||
|
feature cv34 {
|
||||||
|
sub k by k.cv34;
|
||||||
|
sub kcommaaccent by kcommaaccent.cv34;
|
||||||
|
} cv34;
|
||||||
|
|
||||||
|
feature cv35 {
|
||||||
|
sub l by l.cv35;
|
||||||
|
sub l.cv04 by l.cv35;
|
||||||
|
sub lacute by lacute.cv35;
|
||||||
|
sub lacute.cv04 by lacute.cv35;
|
||||||
|
sub lcaron by lcaron.cv35;
|
||||||
|
sub lcaron.cv04 by lcaron.cv35;
|
||||||
|
sub lcommaaccent by lcommaaccent.cv35;
|
||||||
|
sub lcommaaccent.cv04 by lcommaaccent.cv35;
|
||||||
|
sub ldot by ldot.cv35;
|
||||||
|
sub ldot.cv04 by ldot.cv35;
|
||||||
|
sub lslash by lslash.cv35;
|
||||||
|
sub lslash.cv04 by lslash.cv35;
|
||||||
|
|
||||||
|
sub C_l.liga by C_l.liga.cv35;
|
||||||
|
sub C_l.liga.cv04 by C_l.liga.cv35;
|
||||||
|
sub a_l.liga by a_l.liga.cv35;
|
||||||
|
sub a_l.liga.cv04 by a_l.liga.cv35;
|
||||||
|
sub c_l.liga by c_l.liga.cv35;
|
||||||
|
sub c_l.liga.cv04 by c_l.liga.cv35;
|
||||||
|
sub e_l.liga by e_l.liga.cv35;
|
||||||
|
sub e_l.liga.cv04 by e_l.liga.cv35;
|
||||||
|
sub i_l.liga by i_l.liga.cv35;
|
||||||
|
sub i_l.liga.cv04 by i_l.liga.cv35;
|
||||||
|
sub l_l.liga by l_l.liga.cv35;
|
||||||
|
sub l_l.liga.cv04 by l_l.liga.cv35;
|
||||||
|
sub t_l.liga by t_l.liga.cv35;
|
||||||
|
sub t_l.liga.cv04 by t_l.liga.cv35;
|
||||||
|
sub u_l.liga by u_l.liga.cv35;
|
||||||
|
sub u_l.liga.cv04 by u_l.liga.cv35;
|
||||||
|
sub a_l_l.liga by a_l_l.liga.cv35;
|
||||||
|
sub a_l_l.liga.cv04 by a_l_l.liga.cv35;
|
||||||
|
sub e_l_l.liga by e_l_l.liga.cv35;
|
||||||
|
sub e_l_l.liga.cv04 by e_l_l.liga.cv35;
|
||||||
|
sub i_l_l.liga by i_l_l.liga.cv35;
|
||||||
|
sub i_l_l.liga.cv04 by i_l_l.liga.cv35;
|
||||||
|
sub i_l_l.liga.cv04.cv33 by i_l_l.liga.cv33.cv35;
|
||||||
|
sub u_l_l.liga by u_l_l.liga.cv35;
|
||||||
|
sub u_l_l.liga.cv04 by u_l_l.liga.cv35;
|
||||||
|
|
||||||
|
sub one.cv04 by one;
|
||||||
|
} cv35;
|
||||||
|
|
||||||
|
|
||||||
|
feature cv36 {
|
||||||
|
sub x by x.cv36;
|
||||||
|
} cv36;
|
||||||
|
|
||||||
# non-cursive style
|
|
||||||
feature ss01 {
|
feature ss01 {
|
||||||
sub i by i.ss01;
|
featureNames {
|
||||||
sub iacute by iacute.ss01;
|
name "Broken equals ligatures";
|
||||||
sub ibreve by ibreve.ss01;
|
};
|
||||||
sub icaron by icaron.ss01;
|
sub equal_equal.liga by equal_equal.liga.ss01;
|
||||||
sub icircumflex by icircumflex.ss01;
|
sub equal_equal_equal.liga by equal_equal_equal.liga.ss01;
|
||||||
sub idieresis by idieresis.ss01;
|
sub exclam_equal.liga by exclam_equal.liga.ss01;
|
||||||
sub idotbelow by idotbelow.ss01;
|
sub exclam_equal_equal.liga by exclam_equal_equal.liga.ss01;
|
||||||
sub idotless by idotless.ss01;
|
sub equal_slash_equal.liga by equal_slash_equal.liga.ss01;
|
||||||
sub igrave by igrave.ss01;
|
|
||||||
sub ihookabove by ihookabove.ss01;
|
|
||||||
sub imacron by imacron.ss01;
|
|
||||||
sub iogonek by iogonek.ss01;
|
|
||||||
sub itilde by itilde.ss01;
|
|
||||||
sub j by j.ss01;
|
|
||||||
sub jcircumflex by jcircumflex.ss01;
|
|
||||||
sub jdotless by jdotless.ss01;
|
|
||||||
sub k by k.ss01;
|
|
||||||
sub kcommaaccent by kcommaaccent.ss01;
|
|
||||||
sub l by l.ss01;
|
|
||||||
sub lacute by lacute.ss01;
|
|
||||||
sub lcaron by lcaron.ss01;
|
|
||||||
sub lcommaaccent by lcommaaccent.ss01;
|
|
||||||
sub ldot by ldot.ss01;
|
|
||||||
sub lslash by lslash.ss01;
|
|
||||||
sub x by x.ss01;
|
|
||||||
|
|
||||||
sub C_l.liga by C_l.liga.ss01;
|
|
||||||
sub a_l.liga by a_l.liga.ss01;
|
|
||||||
sub a_l.liga.cv02 by a_l.liga.cv02.ss01;
|
|
||||||
sub c_l.liga by c_l.liga.ss01;
|
|
||||||
sub e_l.liga by e_l.liga.ss01;
|
|
||||||
sub i_l.liga by i_l.liga.ss01;
|
|
||||||
sub i_l.liga.cv04 by i_l.liga.cv04.ss01;
|
|
||||||
sub l_l.liga by l_l.liga.ss01;
|
|
||||||
sub t_l.liga by t_l.liga.ss01;
|
|
||||||
sub u_l.liga by u_l.liga.ss01;
|
|
||||||
sub t_t.liga by t_t.liga.ss01;
|
|
||||||
sub a_l_l.liga by a_l_l.liga.ss01;
|
|
||||||
sub a_l_l.liga.cv02 by a_l_l.liga.cv02.ss01;
|
|
||||||
sub e_l_l.liga by e_l_l.liga.ss01;
|
|
||||||
sub i_l_l.liga by i_l_l.liga.ss01;
|
|
||||||
sub i_l_l.liga.cv04 by i_l_l.liga.cv04.ss01;
|
|
||||||
sub u_l_l.liga by u_l_l.liga.ss01;
|
|
||||||
|
|
||||||
} ss01;
|
} ss01;
|
||||||
|
|
||||||
# =====================================
|
|
||||||
# split `==`
|
|
||||||
feature ss02 {
|
feature ss02 {
|
||||||
|
featureNames {
|
||||||
|
name "Broken compare and equal ligatures";
|
||||||
|
};
|
||||||
sub less_equal.liga by less_equal.liga.ss02;
|
sub less_equal.liga by less_equal.liga.ss02;
|
||||||
sub greater_equal.liga by greater_equal.liga.ss02;
|
sub greater_equal.liga by greater_equal.liga.ss02;
|
||||||
sub equal_equal.liga by equal_equal.liga.ss02;
|
|
||||||
sub equal_equal_equal.liga by equal_equal_equal.liga.ss02;
|
|
||||||
sub exclam_equal.liga by exclam_equal.liga.ss02;
|
|
||||||
sub exclam_equal_equal.liga by exclam_equal_equal.liga.ss02;
|
|
||||||
sub equal_slash_equal.liga by equal_slash_equal.liga.ss02;
|
|
||||||
} ss02;
|
} ss02;
|
||||||
|
|
||||||
feature ss03 {
|
feature ss03 {
|
||||||
|
featureNames {
|
||||||
|
name "Enable arbitrary tag";
|
||||||
|
};
|
||||||
# [TRACE]
|
# [TRACE]
|
||||||
lookup badge_trace.liga.ss03 {
|
lookup badge_trace.liga.ss03 {
|
||||||
sub SPC SPC SPC SPC SPC SPC bracketright' by badge_trace.liga;
|
sub SPC SPC SPC SPC SPC SPC bracketright' by badge_trace.liga;
|
||||||
|
@ -1984,7 +2008,88 @@ feature ss03 {
|
||||||
} ss03;
|
} ss03;
|
||||||
|
|
||||||
feature ss04 {
|
feature ss04 {
|
||||||
|
featureNames {
|
||||||
|
name "Break multiple underscores";
|
||||||
|
};
|
||||||
sub underscore_underscore.liga by underscore_underscore.liga.ss04;
|
sub underscore_underscore.liga by underscore_underscore.liga.ss04;
|
||||||
sub numbersign_underscore_underscore.liga by numbersign_underscore_underscore.liga.ss04;
|
sub numbersign_underscore_underscore.liga by numbersign_underscore_underscore.liga.ss04;
|
||||||
sub backslash.liga by backslash;
|
} ss04;
|
||||||
} ss04;
|
|
||||||
|
feature ss05 {
|
||||||
|
featureNames {
|
||||||
|
name "Thin backslash in escape letters";
|
||||||
|
};
|
||||||
|
ignore sub backslash.liga backslash' @escape_letter;
|
||||||
|
sub backslash' @escape_letter by backslash.liga;
|
||||||
|
} ss05;
|
||||||
|
|
||||||
|
feature ss06 {
|
||||||
|
featureNames {
|
||||||
|
name "Remove connected strokes between italic letters";
|
||||||
|
};
|
||||||
|
sub C_l.liga by C_l.liga.ss06;
|
||||||
|
sub a_l.liga by a_l.liga.ss06;
|
||||||
|
sub c_l.liga by c_l.liga.ss06;
|
||||||
|
sub e_l.liga by e_l.liga.ss06;
|
||||||
|
sub i_l.liga by i_l.liga.ss06;
|
||||||
|
sub l_l.liga by l_l.liga.ss06;
|
||||||
|
sub t_l.liga by t_l.liga.ss06;
|
||||||
|
sub u_l.liga by u_l.liga.ss06;
|
||||||
|
sub a_l_l.liga by a_l_l.liga.ss06;
|
||||||
|
sub a_l_l.liga.cv31 by a_l_l.liga.cv31.ss06;
|
||||||
|
sub e_l_l.liga by e_l_l.liga.ss06;
|
||||||
|
sub i_l_l.liga by i_l_l.liga.ss06;
|
||||||
|
sub i_l_l.liga.cv33 by i_l_l.liga.cv33.ss06;
|
||||||
|
sub u_l_l.liga by u_l_l.liga.ss06;
|
||||||
|
sub f_f.liga by f_f.liga.ss06;
|
||||||
|
sub f_f.liga.cv32 by f_f.liga.cv32.ss06;
|
||||||
|
sub t_t.liga by t_t.liga.ss06;
|
||||||
|
} ss06;
|
||||||
|
|
||||||
|
feature ss07 {
|
||||||
|
featureNames {
|
||||||
|
name "Make space optional in multiple less or greater";
|
||||||
|
};
|
||||||
|
# <<
|
||||||
|
lookup loose_less_less.liga {
|
||||||
|
ignore sub less less' less;
|
||||||
|
ignore sub hyphen less' less;
|
||||||
|
ignore sub equal less' less;
|
||||||
|
ignore sub less' less less;
|
||||||
|
ignore sub less' less equal;
|
||||||
|
ignore sub less' less asciitilde;
|
||||||
|
sub SPC less' by less_less.liga;
|
||||||
|
sub less' less by SPC;
|
||||||
|
} loose_less_less.liga;
|
||||||
|
|
||||||
|
# <<<
|
||||||
|
lookup loose_less_less_less.liga {
|
||||||
|
ignore sub less less' less less;
|
||||||
|
ignore sub less' less less less;
|
||||||
|
sub SPC SPC less' by less_less_less.liga;
|
||||||
|
sub SPC less' less by SPC;
|
||||||
|
sub less' less less by SPC;
|
||||||
|
} loose_less_less_less.liga;
|
||||||
|
|
||||||
|
# >>
|
||||||
|
lookup loose_greater_greater.liga {
|
||||||
|
ignore sub greater greater' greater;
|
||||||
|
ignore sub greater' greater greater;
|
||||||
|
ignore sub greater' greater equal;
|
||||||
|
ignore sub greater' greater hyphen;
|
||||||
|
ignore sub equal greater' greater;
|
||||||
|
ignore sub slash greater' greater;
|
||||||
|
ignore sub less greater' greater;
|
||||||
|
sub SPC greater' by greater_greater.liga;
|
||||||
|
sub greater' greater by SPC;
|
||||||
|
} loose_greater_greater.liga;
|
||||||
|
|
||||||
|
# >>>
|
||||||
|
lookup loose_greater_greater_greater.liga {
|
||||||
|
ignore sub greater greater' greater greater;
|
||||||
|
ignore sub greater' greater greater greater;
|
||||||
|
sub SPC SPC greater' by greater_greater_greater.liga;
|
||||||
|
sub SPC greater' greater by SPC;
|
||||||
|
sub greater' greater greater by SPC;
|
||||||
|
} loose_greater_greater_greater.liga;
|
||||||
|
} ss07;
|
|
@ -32,7 +32,8 @@
|
||||||
@x = [X x];
|
@x = [X x];
|
||||||
@y = [Y y];
|
@y = [Y y];
|
||||||
@z = [Z z];
|
@z = [Z z];
|
||||||
@escape = [backslash slash @Digit b B c d D f k n p P r s S t u w W v x dollar period asterisk asciitilde question bar quotesingle quotedbl bracketleft bracketright parenleft parenright braceleft braceright grave comma];
|
@escape_letter = [@Digit b B c d D f k n p P r s S t u w W v x];
|
||||||
|
@escape_punctuation = [backslash slash dollar period asterisk asciitilde question bar quotesingle quotedbl bracketleft bracketright parenleft parenright braceleft braceright grave comma];
|
||||||
#/< otclasses
|
#/< otclasses
|
||||||
#< classes
|
#< classes
|
||||||
|
|
||||||
|
@ -219,7 +220,7 @@ feature calt {
|
||||||
sub plus' plus plus by SPC;
|
sub plus' plus plus by SPC;
|
||||||
} plus_plus_plus.liga;
|
} plus_plus_plus.liga;
|
||||||
|
|
||||||
# .?
|
# .? Zig
|
||||||
lookup period_question.liga {
|
lookup period_question.liga {
|
||||||
ignore sub period period' question;
|
ignore sub period period' question;
|
||||||
ignore sub period' question question;
|
ignore sub period' question question;
|
||||||
|
@ -245,7 +246,7 @@ feature calt {
|
||||||
sub period' period period by SPC;
|
sub period' period period by SPC;
|
||||||
} period_period_period.liga;
|
} period_period_period.liga;
|
||||||
|
|
||||||
# ..<
|
# ..< Swift
|
||||||
lookup period_period_less.liga {
|
lookup period_period_less.liga {
|
||||||
ignore sub period period' period less;
|
ignore sub period period' period less;
|
||||||
ignore sub period' period less [less slash greater];
|
ignore sub period' period less [less slash greater];
|
||||||
|
@ -333,25 +334,18 @@ feature calt {
|
||||||
sub greater' colon greater by SPC;
|
sub greater' colon greater by SPC;
|
||||||
} greater_colon_greater.liga;
|
} greater_colon_greater.liga;
|
||||||
|
|
||||||
# <<
|
# << with tailing space
|
||||||
lookup less_less.liga {
|
lookup less_less.liga {
|
||||||
ignore sub less less' less;
|
ignore sub less less' less space;
|
||||||
ignore sub hyphen less' less;
|
sub SPC less' space by less_less.liga;
|
||||||
ignore sub equal less' less;
|
sub less' less space by SPC;
|
||||||
ignore sub less' less less;
|
|
||||||
ignore sub less' less equal;
|
|
||||||
ignore sub less' less asciitilde;
|
|
||||||
sub SPC less' by less_less.liga;
|
|
||||||
sub less' less by SPC;
|
|
||||||
} less_less.liga;
|
} less_less.liga;
|
||||||
|
|
||||||
# <<<
|
# <<< with tailing space
|
||||||
lookup less_less_less.liga {
|
lookup less_less_less.liga {
|
||||||
ignore sub less less' less less;
|
sub SPC SPC less' space by less_less_less.liga;
|
||||||
ignore sub less' less less less;
|
sub SPC less' less space by SPC;
|
||||||
sub SPC SPC less' by less_less_less.liga;
|
sub less' less less space by SPC;
|
||||||
sub SPC less' less by SPC;
|
|
||||||
sub less' less less by SPC;
|
|
||||||
} less_less_less.liga;
|
} less_less_less.liga;
|
||||||
|
|
||||||
# <=>
|
# <=>
|
||||||
|
@ -414,7 +408,7 @@ feature calt {
|
||||||
# ->>
|
# ->>
|
||||||
lookup hyphen_greater_greater.liga {
|
lookup hyphen_greater_greater.liga {
|
||||||
ignore sub hyphen hyphen' greater greater;
|
ignore sub hyphen hyphen' greater greater;
|
||||||
ignore sub hyphen' greater greater greater;
|
ignore sub hyphen' greater greater [greater hyphen];
|
||||||
sub SPC SPC greater' by hyphen_greater_greater.liga;
|
sub SPC SPC greater' by hyphen_greater_greater.liga;
|
||||||
sub SPC greater' greater by SPC;
|
sub SPC greater' greater by SPC;
|
||||||
sub hyphen' greater greater by SPC;
|
sub hyphen' greater greater by SPC;
|
||||||
|
@ -442,26 +436,21 @@ feature calt {
|
||||||
sub hyphen' greater by SPC;
|
sub hyphen' greater by SPC;
|
||||||
} hyphen_greater.liga;
|
} hyphen_greater.liga;
|
||||||
|
|
||||||
# >>
|
# >> with heading space
|
||||||
lookup greater_greater.liga {
|
lookup greater_greater.liga {
|
||||||
ignore sub greater greater' greater;
|
ignore sub greater greater' greater;
|
||||||
ignore sub greater' greater greater;
|
ignore sub greater' greater [greater equal hyphen];
|
||||||
ignore sub greater' greater equal;
|
ignore sub [equal slash less] greater' greater;
|
||||||
ignore sub greater' greater hyphen;
|
sub space SPC greater' by greater_greater.liga;
|
||||||
ignore sub equal greater' greater;
|
sub space greater' greater by SPC;
|
||||||
ignore sub slash greater' greater;
|
|
||||||
ignore sub less greater' greater;
|
|
||||||
sub SPC greater' by greater_greater.liga;
|
|
||||||
sub greater' greater by SPC;
|
|
||||||
} greater_greater.liga;
|
} greater_greater.liga;
|
||||||
|
|
||||||
# >>>
|
# >>> with heading space
|
||||||
lookup greater_greater_greater.liga {
|
lookup greater_greater_greater.liga {
|
||||||
ignore sub greater greater' greater greater;
|
|
||||||
ignore sub greater' greater greater greater;
|
ignore sub greater' greater greater greater;
|
||||||
sub SPC SPC greater' by greater_greater_greater.liga;
|
sub space SPC SPC greater' by greater_greater_greater.liga;
|
||||||
sub SPC greater' greater by SPC;
|
sub space SPC greater' greater by SPC;
|
||||||
sub greater' greater greater by SPC;
|
sub space greater' greater greater by SPC;
|
||||||
} greater_greater_greater.liga;
|
} greater_greater_greater.liga;
|
||||||
|
|
||||||
# >=
|
# >=
|
||||||
|
@ -810,7 +799,7 @@ feature calt {
|
||||||
# <--
|
# <--
|
||||||
lookup less_hyphen_hyphen.liga {
|
lookup less_hyphen_hyphen.liga {
|
||||||
ignore sub less less' hyphen hyphen;
|
ignore sub less less' hyphen hyphen;
|
||||||
ignore sub less' hyphen hyphen hyphen;
|
ignore sub less' hyphen hyphen [hyphen greater less];
|
||||||
sub SPC SPC hyphen' by less_hyphen_hyphen.liga;
|
sub SPC SPC hyphen' by less_hyphen_hyphen.liga;
|
||||||
sub SPC hyphen' hyphen by SPC;
|
sub SPC hyphen' hyphen by SPC;
|
||||||
sub less' hyphen hyphen by SPC;
|
sub less' hyphen hyphen by SPC;
|
||||||
|
@ -852,7 +841,7 @@ feature calt {
|
||||||
sub question' colon by SPC;
|
sub question' colon by SPC;
|
||||||
} question_colon.liga;
|
} question_colon.liga;
|
||||||
|
|
||||||
# ?.
|
# ?. TypeScript / Rust
|
||||||
lookup question_period.liga {
|
lookup question_period.liga {
|
||||||
ignore sub question question' period;
|
ignore sub question question' period;
|
||||||
ignore sub question' period period;
|
ignore sub question' period period;
|
||||||
|
@ -915,7 +904,7 @@ feature calt {
|
||||||
|
|
||||||
# <=<
|
# <=<
|
||||||
lookup less_equal_less.liga {
|
lookup less_equal_less.liga {
|
||||||
ignore sub less less' equal less;
|
ignore sub [less equal] less' equal less;
|
||||||
ignore sub parenleft question less' equal less;
|
ignore sub parenleft question less' equal less;
|
||||||
ignore sub less' equal less [less equal];
|
ignore sub less' equal less [less equal];
|
||||||
sub SPC SPC less' by less_equal_less.liga;
|
sub SPC SPC less' by less_equal_less.liga;
|
||||||
|
@ -958,7 +947,7 @@ feature calt {
|
||||||
|
|
||||||
# >=>
|
# >=>
|
||||||
lookup greater_equal_greater.liga {
|
lookup greater_equal_greater.liga {
|
||||||
ignore sub greater greater' equal greater;
|
ignore sub [greater equal] greater' equal greater;
|
||||||
ignore sub greater' equal greater [greater equal];
|
ignore sub greater' equal greater [greater equal];
|
||||||
sub SPC SPC greater' by greater_equal_greater.liga;
|
sub SPC SPC greater' by greater_equal_greater.liga;
|
||||||
sub SPC equal' greater by SPC;
|
sub SPC equal' greater by SPC;
|
||||||
|
@ -1456,8 +1445,9 @@ feature calt {
|
||||||
} xml_empty_comment.liga;
|
} xml_empty_comment.liga;
|
||||||
|
|
||||||
lookup escape {
|
lookup escape {
|
||||||
ignore sub backslash.liga backslash' @escape;
|
ignore sub backslash.liga backslash' @escape_punctuation;
|
||||||
sub backslash' @escape by backslash.liga;
|
ignore sub backslash' percent percent;
|
||||||
|
sub backslash' @escape_punctuation by backslash.liga;
|
||||||
} escape;
|
} escape;
|
||||||
|
|
||||||
} calt;
|
} calt;
|
||||||
|
@ -1643,9 +1633,11 @@ feature case {
|
||||||
sub circumflexcomb_hookabovecomb by circumflexcomb_hookabovecomb.case;
|
sub circumflexcomb_hookabovecomb by circumflexcomb_hookabovecomb.case;
|
||||||
sub circumflexcomb_tildecomb by circumflexcomb_tildecomb.case;
|
sub circumflexcomb_tildecomb by circumflexcomb_tildecomb.case;
|
||||||
} case;
|
} case;
|
||||||
|
|
||||||
feature zero {
|
feature zero {
|
||||||
sub zero by zero.zero;
|
sub zero by zero.zero;
|
||||||
} zero;
|
} zero;
|
||||||
|
|
||||||
feature cv01 {
|
feature cv01 {
|
||||||
sub Q by Q.cv01;
|
sub Q by Q.cv01;
|
||||||
sub ampersand by ampersand.cv01;
|
sub ampersand by ampersand.cv01;
|
||||||
|
@ -1661,8 +1653,6 @@ feature cv01 {
|
||||||
sub equal_equal_greater.liga by equal_equal_greater.liga.cv01;
|
sub equal_equal_greater.liga by equal_equal_greater.liga.cv01;
|
||||||
sub less_equal_equal_greater.liga by less_equal_equal_greater.liga.cv01;
|
sub less_equal_equal_greater.liga by less_equal_equal_greater.liga.cv01;
|
||||||
sub less_equal_greater.liga by less_equal_greater.liga.cv01;
|
sub less_equal_greater.liga by less_equal_greater.liga.cv01;
|
||||||
sub less_less_equal.liga by less_less_equal.liga.cv01;
|
|
||||||
sub equal_greater_greater.liga by equal_greater_greater.liga.cv01;
|
|
||||||
sub less_equal_less.liga by less_equal_less.liga.cv01;
|
sub less_equal_less.liga by less_equal_less.liga.cv01;
|
||||||
sub greater_equal_greater.liga by greater_equal_greater.liga.cv01;
|
sub greater_equal_greater.liga by greater_equal_greater.liga.cv01;
|
||||||
sub less_equal_bar.liga by less_equal_bar.liga.cv01;
|
sub less_equal_bar.liga by less_equal_bar.liga.cv01;
|
||||||
|
@ -1676,13 +1666,12 @@ feature cv01 {
|
||||||
sub less_hyphen_less.liga by less_hyphen_less.liga.cv01;
|
sub less_hyphen_less.liga by less_hyphen_less.liga.cv01;
|
||||||
sub greater_hyphen_greater.liga by greater_hyphen_greater.liga.cv01;
|
sub greater_hyphen_greater.liga by greater_hyphen_greater.liga.cv01;
|
||||||
sub less_hyphen_greater.liga by less_hyphen_greater.liga.cv01;
|
sub less_hyphen_greater.liga by less_hyphen_greater.liga.cv01;
|
||||||
sub less_less_hyphen.liga by less_less_hyphen.liga.cv01;
|
|
||||||
sub hyphen_greater_greater.liga by hyphen_greater_greater.liga.cv01;
|
|
||||||
|
|
||||||
sub less_exclam_hyphen_hyphen.liga by less_exclam_hyphen_hyphen.liga.cv01;
|
sub less_exclam_hyphen_hyphen.liga by less_exclam_hyphen_hyphen.liga.cv01;
|
||||||
sub less_numbersign_hyphen_hyphen.liga by less_numbersign_hyphen_hyphen.liga.cv01;
|
sub less_numbersign_hyphen_hyphen.liga by less_numbersign_hyphen_hyphen.liga.cv01;
|
||||||
sub xml_empty_comment.liga by xml_empty_comment.liga.cv01;
|
sub xml_empty_comment.liga by xml_empty_comment.liga.cv01;
|
||||||
} cv01;
|
} cv01;
|
||||||
|
|
||||||
feature cv02 {
|
feature cv02 {
|
||||||
sub a by a.cv02;
|
sub a by a.cv02;
|
||||||
sub aacute by aacute.cv02;
|
sub aacute by aacute.cv02;
|
||||||
|
@ -1709,6 +1698,7 @@ feature cv02 {
|
||||||
sub atilde by atilde.cv02;
|
sub atilde by atilde.cv02;
|
||||||
sub ordfeminine by ordfeminine.cv02;
|
sub ordfeminine by ordfeminine.cv02;
|
||||||
} cv02;
|
} cv02;
|
||||||
|
|
||||||
feature cv03 {
|
feature cv03 {
|
||||||
sub i by i.cv03;
|
sub i by i.cv03;
|
||||||
sub iacute by iacute.cv03;
|
sub iacute by iacute.cv03;
|
||||||
|
@ -1725,6 +1715,7 @@ feature cv03 {
|
||||||
sub iogonek by iogonek.cv03;
|
sub iogonek by iogonek.cv03;
|
||||||
sub itilde by itilde.cv03;
|
sub itilde by itilde.cv03;
|
||||||
} cv03;
|
} cv03;
|
||||||
|
|
||||||
feature cv04 {
|
feature cv04 {
|
||||||
sub l by l.cv04;
|
sub l by l.cv04;
|
||||||
sub lacute by lacute.cv04;
|
sub lacute by lacute.cv04;
|
||||||
|
@ -1734,17 +1725,30 @@ feature cv04 {
|
||||||
sub lslash by lslash.cv04;
|
sub lslash by lslash.cv04;
|
||||||
sub one by one.cv04;
|
sub one by one.cv04;
|
||||||
} cv04;
|
} cv04;
|
||||||
# split `==`
|
|
||||||
|
feature ss01 {
|
||||||
|
featureNames {
|
||||||
|
name "Broken equals ligatures";
|
||||||
|
};
|
||||||
|
sub equal_equal.liga by equal_equal.liga.ss01;
|
||||||
|
sub equal_equal_equal.liga by equal_equal_equal.liga.ss01;
|
||||||
|
sub exclam_equal.liga by exclam_equal.liga.ss01;
|
||||||
|
sub exclam_equal_equal.liga by exclam_equal_equal.liga.ss01;
|
||||||
|
sub equal_slash_equal.liga by equal_slash_equal.liga.ss01;
|
||||||
|
} ss01;
|
||||||
|
|
||||||
feature ss02 {
|
feature ss02 {
|
||||||
|
featureNames {
|
||||||
|
name "Broken compare and equal ligatures";
|
||||||
|
};
|
||||||
sub less_equal.liga by less_equal.liga.ss02;
|
sub less_equal.liga by less_equal.liga.ss02;
|
||||||
sub greater_equal.liga by greater_equal.liga.ss02;
|
sub greater_equal.liga by greater_equal.liga.ss02;
|
||||||
sub equal_equal.liga by equal_equal.liga.ss02;
|
|
||||||
sub equal_equal_equal.liga by equal_equal_equal.liga.ss02;
|
|
||||||
sub exclam_equal.liga by exclam_equal.liga.ss02;
|
|
||||||
sub exclam_equal_equal.liga by exclam_equal_equal.liga.ss02;
|
|
||||||
sub equal_slash_equal.liga by equal_slash_equal.liga.ss02;
|
|
||||||
} ss02;
|
} ss02;
|
||||||
|
|
||||||
feature ss03 {
|
feature ss03 {
|
||||||
|
featureNames {
|
||||||
|
name "Enable rbitrary tag";
|
||||||
|
};
|
||||||
# [TRACE]
|
# [TRACE]
|
||||||
lookup badge_trace.liga.ss03 {
|
lookup badge_trace.liga.ss03 {
|
||||||
sub SPC SPC SPC SPC SPC SPC bracketright' by badge_trace.liga;
|
sub SPC SPC SPC SPC SPC SPC bracketright' by badge_trace.liga;
|
||||||
|
@ -1809,7 +1813,7 @@ feature ss03 {
|
||||||
sub bracketleft' @f @a @t @a @l bracketright by SPC;
|
sub bracketleft' @f @a @t @a @l bracketright by SPC;
|
||||||
} badge_fatal.liga.ss03;
|
} badge_fatal.liga.ss03;
|
||||||
|
|
||||||
# [TODO]
|
# [TODO]
|
||||||
lookup badge_todo.liga.ss03 {
|
lookup badge_todo.liga.ss03 {
|
||||||
sub SPC SPC SPC SPC SPC bracketright' by badge_todo.liga;
|
sub SPC SPC SPC SPC SPC bracketright' by badge_todo.liga;
|
||||||
sub SPC SPC SPC SPC @o' bracketright by SPC;
|
sub SPC SPC SPC SPC @o' bracketright by SPC;
|
||||||
|
@ -1832,7 +1836,65 @@ feature ss03 {
|
||||||
} ss03;
|
} ss03;
|
||||||
|
|
||||||
feature ss04 {
|
feature ss04 {
|
||||||
|
featureNames {
|
||||||
|
name "Break multiple underscores";
|
||||||
|
};
|
||||||
sub underscore_underscore.liga by underscore_underscore.liga.ss04;
|
sub underscore_underscore.liga by underscore_underscore.liga.ss04;
|
||||||
sub numbersign_underscore_underscore.liga by numbersign_underscore_underscore.liga.ss04;
|
sub numbersign_underscore_underscore.liga by numbersign_underscore_underscore.liga.ss04;
|
||||||
sub backslash.liga by backslash;
|
} ss04;
|
||||||
} ss04;
|
|
||||||
|
feature ss05 {
|
||||||
|
featureNames {
|
||||||
|
name "Thin backslash in escape letters";
|
||||||
|
};
|
||||||
|
ignore sub backslash.liga backslash' @escape_letter;
|
||||||
|
sub backslash' @escape_letter by backslash.liga;
|
||||||
|
} ss05;
|
||||||
|
|
||||||
|
feature ss07 {
|
||||||
|
featureNames {
|
||||||
|
name "Make space optional in multiple less or greater";
|
||||||
|
};
|
||||||
|
# <<
|
||||||
|
lookup loose_less_less.liga {
|
||||||
|
ignore sub less less' less;
|
||||||
|
ignore sub hyphen less' less;
|
||||||
|
ignore sub equal less' less;
|
||||||
|
ignore sub less' less less;
|
||||||
|
ignore sub less' less equal;
|
||||||
|
ignore sub less' less asciitilde;
|
||||||
|
sub SPC less' by less_less.liga;
|
||||||
|
sub less' less by SPC;
|
||||||
|
} loose_less_less.liga;
|
||||||
|
|
||||||
|
# <<<
|
||||||
|
lookup loose_less_less_less.liga {
|
||||||
|
ignore sub less less' less less;
|
||||||
|
ignore sub less' less less less;
|
||||||
|
sub SPC SPC less' by less_less_less.liga;
|
||||||
|
sub SPC less' less by SPC;
|
||||||
|
sub less' less less by SPC;
|
||||||
|
} loose_less_less_less.liga;
|
||||||
|
|
||||||
|
# >>
|
||||||
|
lookup loose_greater_greater.liga {
|
||||||
|
ignore sub greater greater' greater;
|
||||||
|
ignore sub greater' greater greater;
|
||||||
|
ignore sub greater' greater equal;
|
||||||
|
ignore sub greater' greater hyphen;
|
||||||
|
ignore sub equal greater' greater;
|
||||||
|
ignore sub slash greater' greater;
|
||||||
|
ignore sub less greater' greater;
|
||||||
|
sub SPC greater' by greater_greater.liga;
|
||||||
|
sub greater' greater by SPC;
|
||||||
|
} loose_greater_greater.liga;
|
||||||
|
|
||||||
|
# >>>
|
||||||
|
lookup loose_greater_greater_greater.liga {
|
||||||
|
ignore sub greater greater' greater greater;
|
||||||
|
ignore sub greater' greater greater greater;
|
||||||
|
sub SPC SPC greater' by greater_greater_greater.liga;
|
||||||
|
sub SPC greater' greater by SPC;
|
||||||
|
sub greater' greater greater by SPC;
|
||||||
|
} loose_greater_greater_greater.liga;
|
||||||
|
} ss07;
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "./schema.json",
|
"$schema": "./schema.json",
|
||||||
"family_name": "Maple Mono",
|
"family_name": "Maple Mono Normal",
|
||||||
"use_hinted": true,
|
"use_hinted": true,
|
||||||
"pool_size": 4,
|
"pool_size": 4,
|
||||||
"feature_freeze": {
|
"feature_freeze": {
|
||||||
|
@ -8,25 +8,21 @@
|
||||||
"cv02": "enable",
|
"cv02": "enable",
|
||||||
"cv03": "ignore",
|
"cv03": "ignore",
|
||||||
"cv04": "ignore",
|
"cv04": "ignore",
|
||||||
|
"cv31": "ignore",
|
||||||
|
"cv32": "ignore",
|
||||||
|
"cv33": "enable",
|
||||||
|
"cv34": "enable",
|
||||||
|
"cv35": "enable",
|
||||||
|
"cv36": "enable",
|
||||||
"cv98": "ignore",
|
"cv98": "ignore",
|
||||||
"cv99": "ignore",
|
"cv99": "ignore",
|
||||||
"ss01": "ignore",
|
"ss01": "ignore",
|
||||||
"ss02": "ignore",
|
"ss02": "ignore",
|
||||||
"ss03": "ignore",
|
"ss03": "ignore",
|
||||||
"ss04": "ignore",
|
"ss04": "ignore",
|
||||||
"zero": "ignore"
|
"ss05": "ignore",
|
||||||
},
|
"ss06": "enable",
|
||||||
"feature_freeze_italic": {
|
"ss07": "enable",
|
||||||
"cv01": "ignore",
|
|
||||||
"cv02": "ignore",
|
|
||||||
"cv03": "ignore",
|
|
||||||
"cv04": "ignore",
|
|
||||||
"cv98": "ignore",
|
|
||||||
"cv99": "ignore",
|
|
||||||
"ss01": "enable",
|
|
||||||
"ss02": "ignore",
|
|
||||||
"ss03": "ignore",
|
|
||||||
"ss04": "ignore",
|
|
||||||
"zero": "ignore"
|
"zero": "ignore"
|
||||||
},
|
},
|
||||||
"nerd_font": {
|
"nerd_font": {
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
"properties": {
|
"properties": {
|
||||||
"cv01": {
|
"cv01": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Classic '@', '$', '&', 'Q', '=>', '->'",
|
"description": "Classic '@', '$', '%', '&', 'Q', '=>', '->'",
|
||||||
"enum": [
|
"enum": [
|
||||||
"ignore",
|
"ignore",
|
||||||
"disable",
|
"disable",
|
||||||
|
@ -51,7 +51,61 @@
|
||||||
},
|
},
|
||||||
"cv04": {
|
"cv04": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Alternative 'l' (with bottom left bar) and '1' (without bottom bar)",
|
"description": "Alternative 'l' (with bottom left bar) and '1' (without bottom bar), will be overrided by cv35 in italic style",
|
||||||
|
"enum": [
|
||||||
|
"ignore",
|
||||||
|
"disable",
|
||||||
|
"enable"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"cv31": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "[Italic Only] Alternative 'a' (with top alarm)",
|
||||||
|
"enum": [
|
||||||
|
"ignore",
|
||||||
|
"disable",
|
||||||
|
"enable"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"cv32": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "[Italic Only] Alternative 'f' (without bottom tail)",
|
||||||
|
"enum": [
|
||||||
|
"ignore",
|
||||||
|
"disable",
|
||||||
|
"enable"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"cv33": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "[Italic Only] Alternative 'i' (with bottom left bar) and 'j'",
|
||||||
|
"enum": [
|
||||||
|
"ignore",
|
||||||
|
"disable",
|
||||||
|
"enable"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"cv34": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "[Italic Only] Alternative 'k' (without center circle)",
|
||||||
|
"enum": [
|
||||||
|
"ignore",
|
||||||
|
"disable",
|
||||||
|
"enable"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"cv35": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "[Italic Only] Alternative 'l' (without center tail)",
|
||||||
|
"enum": [
|
||||||
|
"ignore",
|
||||||
|
"disable",
|
||||||
|
"enable"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"cv36": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "[Italic Only] Alternative 'x' (without top and bottom tails)",
|
||||||
"enum": [
|
"enum": [
|
||||||
"ignore",
|
"ignore",
|
||||||
"disable",
|
"disable",
|
||||||
|
@ -60,7 +114,7 @@
|
||||||
},
|
},
|
||||||
"cv98": {
|
"cv98": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Full width '…'(ellipsis) and '—'(emdash) support for Maple Mono NF CN",
|
"description": "[CN Only] Full width '…'(ellipsis) and '—'(emdash)",
|
||||||
"enum": [
|
"enum": [
|
||||||
"ignore",
|
"ignore",
|
||||||
"disable",
|
"disable",
|
||||||
|
@ -69,7 +123,7 @@
|
||||||
},
|
},
|
||||||
"cv99": {
|
"cv99": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Traditional punctuations support for Maple Mono NF CN",
|
"description": "[CN Only] Traditional punctuations",
|
||||||
"enum": [
|
"enum": [
|
||||||
"ignore",
|
"ignore",
|
||||||
"disable",
|
"disable",
|
||||||
|
@ -78,7 +132,7 @@
|
||||||
},
|
},
|
||||||
"ss01": {
|
"ss01": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Non-cursive italic style of 'l i j k x'",
|
"description": "Broken equals ligatures (==, ===, !=, !==, =/=)",
|
||||||
"enum": [
|
"enum": [
|
||||||
"ignore",
|
"ignore",
|
||||||
"disable",
|
"disable",
|
||||||
|
@ -87,7 +141,7 @@
|
||||||
},
|
},
|
||||||
"ss02": {
|
"ss02": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Disable ligautures on equals like '==', '!=', '<='",
|
"description": "Broken compare and equal ligatures (<=, >=)",
|
||||||
"enum": [
|
"enum": [
|
||||||
"ignore",
|
"ignore",
|
||||||
"disable",
|
"disable",
|
||||||
|
@ -96,7 +150,7 @@
|
||||||
},
|
},
|
||||||
"ss03": {
|
"ss03": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Ignore cases on all tags",
|
"description": "Enable arbitrary tag (allow to use any case letters in all tags)",
|
||||||
"enum": [
|
"enum": [
|
||||||
"ignore",
|
"ignore",
|
||||||
"disable",
|
"disable",
|
||||||
|
@ -105,112 +159,34 @@
|
||||||
},
|
},
|
||||||
"ss04": {
|
"ss04": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Disable ligatures on '__', '#__', '***' and escape strings",
|
"description": "Break multiple underscores (__, #__)",
|
||||||
"enum": [
|
"enum": [
|
||||||
"ignore",
|
"ignore",
|
||||||
"disable",
|
"disable",
|
||||||
"enable"
|
"enable"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"zero": {
|
"ss05": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Dot style '0'",
|
"description": "Thin backslash in escape letters (\\w, \\n, \\r ...)",
|
||||||
"enum": [
|
|
||||||
"ignore",
|
|
||||||
"disable",
|
|
||||||
"enable"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"feature_freeze_italic": {
|
|
||||||
"type": "object",
|
|
||||||
"description": "Freeze some font features (No effect on Variable font) for italic font \n enable: enable font features by default \n disable: remove some font features \n ignore: skip handle target font features",
|
|
||||||
"properties": {
|
|
||||||
"cv01": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "Classic '@', '$', '&', 'Q', '=>', '->'",
|
|
||||||
"enum": [
|
"enum": [
|
||||||
"ignore",
|
"ignore",
|
||||||
"disable",
|
"disable",
|
||||||
"enable"
|
"enable"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"cv02": {
|
"ss06": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Alternative 'a' (with top alarm)",
|
"description": "[Italic Only] Remove connected strokes between italic letters (al, ul, il ...)",
|
||||||
"enum": [
|
"enum": [
|
||||||
"ignore",
|
"ignore",
|
||||||
"disable",
|
"disable",
|
||||||
"enable"
|
"enable"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"cv03": {
|
"ss07": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Alternative regular 'i' (without bottom left bar)",
|
"description": "Make space optional in multiple less or greater (<<, >>, <<<, >>>)",
|
||||||
"enum": [
|
|
||||||
"ignore",
|
|
||||||
"disable",
|
|
||||||
"enable"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"cv04": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "Alternative 'l' (with bottom left bar) and '1' (without bottom bar)",
|
|
||||||
"enum": [
|
|
||||||
"ignore",
|
|
||||||
"disable",
|
|
||||||
"enable"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"cv98": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "Full width '…'(ellipsis) and '—'(emdash) support for Maple Mono NF CN",
|
|
||||||
"enum": [
|
|
||||||
"ignore",
|
|
||||||
"disable",
|
|
||||||
"enable"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"cv99": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "Traditional punctuations support for Maple Mono NF CN",
|
|
||||||
"enum": [
|
|
||||||
"ignore",
|
|
||||||
"disable",
|
|
||||||
"enable"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ss01": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "Non-cursive italic style of 'l i j k x'",
|
|
||||||
"enum": [
|
|
||||||
"ignore",
|
|
||||||
"disable",
|
|
||||||
"enable"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ss02": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "Disable ligautures on equals like '==', '!=', '<='",
|
|
||||||
"enum": [
|
|
||||||
"ignore",
|
|
||||||
"disable",
|
|
||||||
"enable"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ss03": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "Ignore cases on all tags",
|
|
||||||
"enum": [
|
|
||||||
"ignore",
|
|
||||||
"disable",
|
|
||||||
"enable"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"ss04": {
|
|
||||||
"type": "string",
|
|
||||||
"description": "Disable ligatures on '__', '#__', '***' and escape strings",
|
|
||||||
"enum": [
|
"enum": [
|
||||||
"ignore",
|
"ignore",
|
||||||
"disable",
|
"disable",
|
||||||
|
|
Loading…
Reference in a new issue