mirror of
https://github.com/eigilnikolajsen/commit-mono.git
synced 2024-08-17 22:40:44 +03:00
init commit
This commit is contained in:
commit
4ec5d43d0b
24
.gitignore
vendored
Normal file
24
.gitignore
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
pnpm-debug.log*
|
||||
lerna-debug.log*
|
||||
|
||||
node_modules
|
||||
dist
|
||||
dist-ssr
|
||||
*.local
|
||||
|
||||
# Editor directories and files
|
||||
.vscode/*
|
||||
!.vscode/extensions.json
|
||||
.idea
|
||||
.DS_Store
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
35
f.js
Normal file
35
f.js
Normal file
@ -0,0 +1,35 @@
|
||||
// @dflt = [exclam comma period slash colon semicolon question backslash bar];
|
||||
// @c2_1 = [exclam.c2_1 comma.c2_1 period.c2_1 slash.c2_1 colon.c2_1 semicolon.c2_1 question.c2_1 backslash.c2_1 bar.c2_1];
|
||||
// @c2_2 = [exclam.c2_2 comma.c2_2 period.c2_2 slash.c2_2 colon.c2_2 semicolon.c2_2 question.c2_2 backslash.c2_2 bar.c2_2];
|
||||
// @c3_1 = [exclam.c3_1 comma.c3_1 period.c3_1 slash.c3_1 colon.c3_1 semicolon.c3_1 question.c3_1 backslash.c3_1 bar.c3_1];
|
||||
// @c3_2 = [exclam comma period slash colon semicolon question backslash bar];
|
||||
// @c3_3 = [exclam.c3_3 comma.c3_3 period.c3_3 slash.c3_3 colon.c3_3 semicolon.c3_3 question.c3_3 backslash.c3_3 bar.c3_3];
|
||||
|
||||
const input =
|
||||
"exclam exclam.square comma period period.square slash slash.case colon colon.square colon.case colon.case.square semicolon semicolon.square semicolon.case semicolon.case.square question question.square backslash backslash.case bar bar.case"
|
||||
function c002(input) {
|
||||
const s = input.split(" ")
|
||||
return `
|
||||
@dflt = [${input}];
|
||||
@c2_1 = [${s.join(".c2_1 ")}.c2_1];
|
||||
@c2_2 = [${s.join(".c2_2 ")}.c2_2];
|
||||
@c3_1 = [${s.join(".c3_1 ")}.c3_1];
|
||||
@c3_3 = [${s.join(".c3_3 ")}.c3_3];
|
||||
`
|
||||
}
|
||||
pbcopy(c002(input))
|
||||
console.log(c002(input))
|
||||
|
||||
const classContent =
|
||||
"exclam numbersign dollar percent ampersand asterisk plus zero one two three four five six seven eight nine question A B C D E F G H I J K L M N O P Q R S T U V W X Y Z sterling yen copyright registered Agrave Aacute Acircumflex Atilde Adieresis Aring AE Ccedilla Egrave Eacute Ecircumflex Edieresis Igrave Iacute Icircumflex Idieresis Eth Ntilde Ograve Oacute Ocircumflex Otilde Odieresis Oslash Ugrave Uacute Ucircumflex Udieresis Yacute Thorn Amacron Abreve Aogonek Cacute Ccircumflex Cdotaccent Ccaron Dcaron Dcroat Emacron Ebreve Edotaccent Eogonek Ecaron Gcircumflex Gbreve Gdotaccent Gcommaaccent Hcircumflex Hbar Itilde Imacron Iogonek Idotaccent IJ Jcircumflex Kcommaaccent Lacute Lcommaaccent Lcaron Ldot Lslash Nacute Ncommaaccent Ncaron Omacron Obreve Ohungarumlaut OE Racute Rcommaaccent Rcaron Sacute Scircumflex Scedilla Scaron Tcedilla Tcaron Tbar Utilde Umacron Ubreve Uring Uhungarumlaut Uogonek Wcircumflex Ycircumflex Ydieresis Zdotaccent Zcaron Scommaaccent Tcommaaccent Delta Omega Wgrave Wacute Wdieresis dagger daggerdbl perthousand franc lira peseta Euro product summation radical lozenge Ohm six.cv03 nine.cv03 approxequal.case asciitilde.case asterisk.case at.case backslash.case bar.case braceleft.case braceright.case bracketleft.case bracketright.case brokenbar.case bullet.case bulletoperator.case colon.case divide.case divisionslash.case emdash.case endash.case equal.case exclamdown.case greater.case greaterequal.case guillemotleft.case guillemotright.case guilsinglleft.case guilsinglright.case hyphen.case less.case lessequal.case logicalnot.case minus.case multiply.case notequal.case parenleft.case parenright.case periodcentered.case plus.case plusminus.case questiondown.case semicolon.case slash.case softhyphen.case Adieresis.square Cdotaccent.square Edieresis.square Edotaccent.square Gcommaaccent.square Gdotaccent.square Idieresis.square Idotaccent.square Kcommaaccent.square Lcommaaccent.square Ldot.square Ncommaaccent.square Odieresis.square Rcommaaccent.square Scommaaccent.square Tcommaaccent.square Udieresis.square Wdieresis.square Ydieresis.square Zdotaccent.square backslash.case.c2_1 backslash.case.c2_2 backslash.case.c3_1 backslash.case.c3_3 bar.case.c2_1 bar.case.c2_2 bar.case.c3_1 bar.case.c3_3 bullet.case.square bulletoperator.case.square colon.case.c2_1 colon.case.c2_2 colon.case.c3_1 colon.case.c3_3 colon.case.square colon.case.square.c2_1 colon.case.square.c2_2 colon.case.square.c3_1 colon.case.square.c3_3 equal.arrow.case exclamdown.case.square greater.arrow_end.case greater.arrow_start.case greater.arrow_start_equal.case greater.arrow_start_hyphen.case greater.pipe.case hyphen.arrow.case less.arrow_end.case less.arrow_start.case less.arrow_start_equal.case less.arrow_start_hyphen.case less.pipe.case periodcentered.case.square questiondown.case.square semicolon.case.c2_1 semicolon.case.c2_2 semicolon.case.c3_1 semicolon.case.c3_3 semicolon.case.square semicolon.case.square.c2_1 semicolon.case.square.c2_2 semicolon.case.square.c3_1 semicolon.case.square.c3_3 slash.case.c2_1 slash.case.c2_2 slash.case.c3_1 slash.case.c3_3 divide.case.square approxequal.case asciitilde.case asterisk.case at.case backslash.case backslash.case.c2_1 backslash.case.c2_2 backslash.case.c3_1 backslash.case.c3_3 bar.case bar.case.c2_1 bar.case.c2_2 bar.case.c3_1 bar.case.c3_3 braceleft.case braceright.case bracketleft.case bracketright.case brokenbar.case bullet.case bullet.case.square bulletoperator.case bulletoperator.case.square colon.case colon.case.c2_1 colon.case.c2_2 colon.case.c3_1 colon.case.c3_3 colon.case.square colon.case.square.c2_1 colon.case.square.c2_2 colon.case.square.c3_1 colon.case.square.c3_3 divide.case divide.case.square divisionslash.case emdash.case endash.case equal.arrow.case equal.case exclamdown.case exclamdown.case.square greater.arrow_end.case greater.arrow_start.case greater.arrow_start_equal.case greater.arrow_start_hyphen.case greater.case greater.pipe.case greaterequal.case guillemotleft.case guillemotright.case guilsinglleft.case guilsinglright.case hyphen.arrow.case hyphen.case less.arrow_end.case less.arrow_start.case less.arrow_start_equal.case less.arrow_start_hyphen.case less.case less.pipe.case lessequal.case logicalnot.case minus.case multiply.case notequal.case parenleft.case parenright.case periodcentered.case periodcentered.case.square plus.case plusminus.case questiondown.case questiondown.case.square semicolon.case semicolon.case.c2_1 semicolon.case.c2_2 semicolon.case.c3_1 semicolon.case.c3_3 semicolon.case.square semicolon.case.square.c2_1 semicolon.case.square.c2_2 semicolon.case.square.c3_1 semicolon.case.square.c3_3 slash.case slash.case.c2_1 slash.case.c2_2 slash.case.c3_1 slash.case.c3_3 softhyphen.case"
|
||||
function classExcess(c) {
|
||||
return [...new Set(c.split(" "))].join(" ")
|
||||
}
|
||||
function pbcopy(data) {
|
||||
var proc = require("child_process").spawn("pbcopy")
|
||||
proc.stdin.write(data)
|
||||
proc.stdin.end()
|
||||
}
|
||||
|
||||
// pbcopy(classExcess(classContent))
|
||||
// console.log(classExcess(classContent))
|
72
features/c001.fea
Normal file
72
features/c001.fea
Normal file
@ -0,0 +1,72 @@
|
||||
feature c001 {
|
||||
# Coding Ligature 001—999
|
||||
# Case sensitive punctuation
|
||||
|
||||
#> feature
|
||||
|
||||
ignore sub @case_default' @lowercase_actor;
|
||||
ignore sub @case_default' @case_default @lowercase_actor;
|
||||
ignore sub @case_default' @case_default @case_default @lowercase_actor;
|
||||
ignore sub @case_default' @case_default @case_default @case_default @lowercase_actor;
|
||||
ignore sub @case_default' @case_default @case_default @case_default @case_default @lowercase_actor;
|
||||
ignore sub @case_default' @case_default @case_default @case_default @case_default @case_default @lowercase_actor;
|
||||
ignore sub @case_default' @case_default @case_default @case_default @case_default @case_default @case_default @lowercase_actor;
|
||||
ignore sub @case_default' @case_default @case_default @case_default @case_default @case_default @case_default @case_default @lowercase_actor;
|
||||
|
||||
ignore sub @lowercase_actor @case_default';
|
||||
ignore sub @lowercase_actor @case_default @case_default';
|
||||
ignore sub @lowercase_actor @case_default @case_default @case_default';
|
||||
ignore sub @lowercase_actor @case_default @case_default @case_default @case_default';
|
||||
ignore sub @lowercase_actor @case_default @case_default @case_default @case_default @case_default';
|
||||
ignore sub @lowercase_actor @case_default @case_default @case_default @case_default @case_default @case_default';
|
||||
ignore sub @lowercase_actor @case_default @case_default @case_default @case_default @case_default @case_default @case_default';
|
||||
ignore sub @lowercase_actor @case_default @case_default @case_default @case_default @case_default @case_default @case_default @case_default';
|
||||
|
||||
ignore sub @case_default' @space_actor @lowercase_actor;
|
||||
ignore sub @case_default' @case_default @space_actor @lowercase_actor;
|
||||
ignore sub @case_default' @case_default @case_default @space_actor @lowercase_actor;
|
||||
ignore sub @case_default' @case_default @case_default @case_default @space_actor @lowercase_actor;
|
||||
ignore sub @case_default' @case_default @case_default @case_default @case_default @space_actor @lowercase_actor;
|
||||
ignore sub @case_default' @case_default @case_default @case_default @case_default @case_default @space_actor @lowercase_actor;
|
||||
ignore sub @case_default' @case_default @case_default @case_default @case_default @case_default @case_default @space_actor @lowercase_actor;
|
||||
ignore sub @case_default' @case_default @case_default @case_default @case_default @case_default @case_default @case_default @space_actor @lowercase_actor;
|
||||
|
||||
ignore sub @lowercase_actor @space_actor @case_default';
|
||||
ignore sub @lowercase_actor @space_actor @case_default @case_default';
|
||||
ignore sub @lowercase_actor @space_actor @case_default @case_default @case_default';
|
||||
ignore sub @lowercase_actor @space_actor @case_default @case_default @case_default @case_default';
|
||||
ignore sub @lowercase_actor @space_actor @case_default @case_default @case_default @case_default @case_default';
|
||||
ignore sub @lowercase_actor @space_actor @case_default @case_default @case_default @case_default @case_default @case_default';
|
||||
ignore sub @lowercase_actor @space_actor @case_default @case_default @case_default @case_default @case_default @case_default @case_default';
|
||||
ignore sub @lowercase_actor @space_actor @case_default @case_default @case_default @case_default @case_default @case_default @case_default @case_default';
|
||||
|
||||
sub @case_default @case_default' by @case_top;
|
||||
sub @case_default' @case_default by @case_top;
|
||||
|
||||
sub @case_default' @case_default @case_default @case_default @case_default @case_default @case_default @case_default @case_default @uppercase_actor by @case_top;
|
||||
sub @case_default' @case_default @case_default @case_default @case_default @case_default @case_default @case_default @uppercase_actor by @case_top;
|
||||
sub @case_default' @case_default @case_default @case_default @case_default @case_default @case_default @uppercase_actor by @case_top;
|
||||
sub @case_default' @case_default @case_default @case_default @case_default @case_default @uppercase_actor by @case_top;
|
||||
sub @case_default' @case_default @case_default @case_default @case_default @uppercase_actor by @case_top;
|
||||
sub @case_default' @case_default @case_default @case_default @uppercase_actor by @case_top;
|
||||
sub @case_default' @case_default @case_default @uppercase_actor by @case_top;
|
||||
sub @case_default' @case_default @uppercase_actor by @case_top;
|
||||
sub @case_default' @uppercase_actor by @case_top;
|
||||
|
||||
sub @case_default' @case_default @case_default @case_default @case_default @case_default @case_default @case_default @case_default @space_actor @uppercase_actor by @case_top;
|
||||
sub @case_default' @case_default @case_default @case_default @case_default @case_default @case_default @case_default @space_actor @uppercase_actor by @case_top;
|
||||
sub @case_default' @case_default @case_default @case_default @case_default @case_default @case_default @space_actor @uppercase_actor by @case_top;
|
||||
sub @case_default' @case_default @case_default @case_default @case_default @case_default @space_actor @uppercase_actor by @case_top;
|
||||
sub @case_default' @case_default @case_default @case_default @case_default @space_actor @uppercase_actor by @case_top;
|
||||
sub @case_default' @case_default @case_default @case_default @space_actor @uppercase_actor by @case_top;
|
||||
sub @case_default' @case_default @case_default @space_actor @uppercase_actor by @case_top;
|
||||
sub @case_default' @case_default @space_actor @uppercase_actor by @case_top;
|
||||
sub @case_default' @space_actor @uppercase_actor by @case_top;
|
||||
|
||||
sub @uppercase_actor @case_default' by @case_top;
|
||||
sub @uppercase_actor @space_actor @case_default' by @case_top;
|
||||
|
||||
|
||||
#< feature
|
||||
|
||||
} c001;
|
27
features/c002.fea
Normal file
27
features/c002.fea
Normal file
@ -0,0 +1,27 @@
|
||||
feature c002 {
|
||||
# Coding Ligature 001—999
|
||||
# Adjust punctuation horizontally
|
||||
|
||||
#> feature
|
||||
@dflt = [exclam exclam.square comma period period.square slash slash.case colon colon.square colon.case colon.case.square semicolon semicolon.square semicolon.case semicolon.case.square question question.square backslash backslash.case bar bar.case];
|
||||
@c2_1 = [exclam.c2_1 exclam.square.c2_1 comma.c2_1 period.c2_1 period.square.c2_1 slash.c2_1 slash.case.c2_1 colon.c2_1 colon.square.c2_1 colon.case.c2_1 colon.case.square.c2_1 semicolon.c2_1 semicolon.square.c2_1 semicolon.case.c2_1 semicolon.case.square.c2_1 question.c2_1 question.square.c2_1 backslash.c2_1 backslash.case.c2_1 bar.c2_1 bar.case.c2_1];
|
||||
@c2_2 = [exclam.c2_2 exclam.square.c2_2 comma.c2_2 period.c2_2 period.square.c2_2 slash.c2_2 slash.case.c2_2 colon.c2_2 colon.square.c2_2 colon.case.c2_2 colon.case.square.c2_2 semicolon.c2_2 semicolon.square.c2_2 semicolon.case.c2_2 semicolon.case.square.c2_2 question.c2_2 question.square.c2_2 backslash.c2_2 backslash.case.c2_2 bar.c2_2 bar.case.c2_2];
|
||||
@c3_1 = [exclam.c3_1 exclam.square.c3_1 comma.c3_1 period.c3_1 period.square.c3_1 slash.c3_1 slash.case.c3_1 colon.c3_1 colon.square.c3_1 colon.case.c3_1 colon.case.square.c3_1 semicolon.c3_1 semicolon.square.c3_1 semicolon.case.c3_1 semicolon.case.square.c3_1 question.c3_1 question.square.c3_1 backslash.c3_1 backslash.case.c3_1 bar.c3_1 bar.case.c3_1];
|
||||
@c3_3 = [exclam.c3_3 exclam.square.c3_3 comma.c3_3 period.c3_3 period.square.c3_3 slash.c3_3 slash.case.c3_3 colon.c3_3 colon.square.c3_3 colon.case.c3_3 colon.case.square.c3_3 semicolon.c3_3 semicolon.square.c3_3 semicolon.case.c3_3 semicolon.case.square.c3_3 question.c3_3 question.square.c3_3 backslash.c3_3 backslash.case.c3_3 bar.c3_3 bar.case.c3_3];
|
||||
|
||||
ignore sub @dflt' @dflt @dflt @dflt;
|
||||
ignore sub @dflt @dflt' @dflt @dflt;
|
||||
ignore sub @dflt @dflt @dflt' @dflt;
|
||||
ignore sub @dflt @dflt @dflt @dflt';
|
||||
|
||||
sub @dflt' @dflt @dflt by @c3_1;
|
||||
sub @c3_1 @dflt @dflt' by @c3_3;
|
||||
|
||||
ignore sub @c3_1 @dflt' @dflt;
|
||||
|
||||
sub @dflt' @dflt by @c2_1;
|
||||
sub @c2_1 @dflt' by @c2_2;
|
||||
|
||||
#< feature
|
||||
|
||||
} c002;
|
99
features/c003.fea
Normal file
99
features/c003.fea
Normal file
@ -0,0 +1,99 @@
|
||||
feature c003 {
|
||||
# Character Variant 01—99
|
||||
# Arrows
|
||||
|
||||
#> feature
|
||||
|
||||
@hyphen = [hyphen hyphen.case];
|
||||
@hyphen_arrow = [hyphen.arrow hyphen.arrow.case];
|
||||
@equal = [equal equal.case];
|
||||
@equal_arrow = [equal.arrow equal.arrow.case];
|
||||
@less = [less less.case];
|
||||
@less_arrow_end = [less.arrow_end less.arrow_end.case];
|
||||
@less_arrow_start = [less.arrow_start less.arrow_start.case];
|
||||
@less_arrow_start_hyphen = [less.arrow_start_hyphen less.arrow_start_hyphen.case];
|
||||
@less_arrow_start_equal = [less.arrow_start_equal less.arrow_start_equal.case];
|
||||
@greater = [greater greater.case];
|
||||
@greater_arrow_end = [greater.arrow_end greater.arrow_end.case];
|
||||
@greater_arrow_start = [greater.arrow_start greater.arrow_start.case];
|
||||
@greater_arrow_start_hyphen = [greater.arrow_start_hyphen greater.arrow_start_hyphen.case];
|
||||
@greater_arrow_start_equal = [greater.arrow_start_equal greater.arrow_start_equal.case];
|
||||
@exclam = [exclam exclam.square];
|
||||
|
||||
sub @less' @less @less @less @less @hyphen by @less_arrow_start;
|
||||
sub @less' @less @less @less @hyphen by @less_arrow_start;
|
||||
sub @less' @less @less @hyphen by @less_arrow_start;
|
||||
sub @less' @less @hyphen by @less_arrow_start;
|
||||
sub @less' @hyphen by @less_arrow_start_hyphen;
|
||||
sub @less_arrow_start_hyphen @hyphen' by @hyphen_arrow;
|
||||
|
||||
sub @less' @less @less @less @less @equal by @less_arrow_start;
|
||||
sub @less' @less @less @less @equal by @less_arrow_start;
|
||||
sub @less' @less @less @equal by @less_arrow_start;
|
||||
sub @less' @less @equal by @less_arrow_start;
|
||||
sub @less' @equal by @less_arrow_start_equal;
|
||||
sub @less_arrow_start_equal @equal' by @equal_arrow;
|
||||
|
||||
sub @greater' @greater @greater @greater @greater @hyphen by @greater_arrow_end;
|
||||
sub @greater' @greater @greater @greater @hyphen by @greater_arrow_end;
|
||||
sub @greater' @greater @greater @hyphen by @greater_arrow_end;
|
||||
sub @greater' @greater @hyphen by @greater_arrow_end;
|
||||
sub @greater' @hyphen by @greater_arrow_end;
|
||||
sub @greater_arrow_end @hyphen' by @hyphen_arrow;
|
||||
|
||||
sub @greater' @greater @greater @greater @greater @equal by @greater_arrow_end;
|
||||
sub @greater' @greater @greater @greater @equal by @greater_arrow_end;
|
||||
sub @greater' @greater @greater @equal by @greater_arrow_end;
|
||||
sub @greater' @greater @equal by @greater_arrow_end;
|
||||
sub @greater' @equal by @greater_arrow_end;
|
||||
sub @greater_arrow_end @equal' by @equal_arrow;
|
||||
|
||||
sub @hyphen' @hyphen @hyphen @hyphen @hyphen @hyphen @hyphen @hyphen @less by @hyphen_arrow;
|
||||
sub @hyphen' @hyphen @hyphen @hyphen @hyphen @hyphen @hyphen @less by @hyphen_arrow;
|
||||
sub @hyphen' @hyphen @hyphen @hyphen @hyphen @hyphen @less by @hyphen_arrow;
|
||||
sub @hyphen' @hyphen @hyphen @hyphen @hyphen @less by @hyphen_arrow;
|
||||
sub @hyphen' @hyphen @hyphen @hyphen @less by @hyphen_arrow;
|
||||
sub @hyphen' @hyphen @hyphen @less by @hyphen_arrow;
|
||||
sub @hyphen' @hyphen @less by @hyphen_arrow;
|
||||
sub @hyphen' @less by @hyphen_arrow;
|
||||
sub @hyphen' @hyphen @hyphen @hyphen @hyphen @hyphen @hyphen @hyphen @greater by @hyphen_arrow;
|
||||
sub @hyphen' @hyphen @hyphen @hyphen @hyphen @hyphen @hyphen @greater by @hyphen_arrow;
|
||||
sub @hyphen' @hyphen @hyphen @hyphen @hyphen @hyphen @greater by @hyphen_arrow;
|
||||
sub @hyphen' @hyphen @hyphen @hyphen @hyphen @greater by @hyphen_arrow;
|
||||
sub @hyphen' @hyphen @hyphen @hyphen @greater by @hyphen_arrow;
|
||||
sub @hyphen' @hyphen @hyphen @greater by @hyphen_arrow;
|
||||
sub @hyphen' @hyphen @greater by @hyphen_arrow;
|
||||
sub @hyphen' @greater by @hyphen_arrow;
|
||||
sub @hyphen_arrow @hyphen' by @hyphen_arrow;
|
||||
sub @hyphen_arrow @less' by @less_arrow_end;
|
||||
sub @hyphen_arrow @greater' by @greater_arrow_start_hyphen;
|
||||
|
||||
sub @equal' @equal @equal @equal @equal @equal @equal @equal @less by @equal_arrow;
|
||||
sub @equal' @equal @equal @equal @equal @equal @equal @less by @equal_arrow;
|
||||
sub @equal' @equal @equal @equal @equal @equal @less by @equal_arrow;
|
||||
sub @equal' @equal @equal @equal @equal @less by @equal_arrow;
|
||||
sub @equal' @equal @equal @equal @less by @equal_arrow;
|
||||
sub @equal' @equal @equal @less by @equal_arrow;
|
||||
sub @equal' @equal @less by @equal_arrow;
|
||||
sub @equal' @less by @equal_arrow;
|
||||
sub @equal' @equal @equal @equal @equal @equal @equal @equal @greater by @equal_arrow;
|
||||
sub @equal' @equal @equal @equal @equal @equal @equal @greater by @equal_arrow;
|
||||
sub @equal' @equal @equal @equal @equal @equal @greater by @equal_arrow;
|
||||
sub @equal' @equal @equal @equal @equal @greater by @equal_arrow;
|
||||
sub @equal' @equal @equal @equal @greater by @equal_arrow;
|
||||
sub @equal' @equal @equal @greater by @equal_arrow;
|
||||
sub @equal' @equal @greater by @equal_arrow;
|
||||
sub @equal' @greater by @equal_arrow;
|
||||
sub @equal_arrow @equal' by @equal_arrow;
|
||||
sub @equal_arrow @less' by @less_arrow_end;
|
||||
sub @equal_arrow @greater' by @greater_arrow_start_equal;
|
||||
|
||||
sub @greater_arrow_start_hyphen @greater' by @greater_arrow_start;
|
||||
sub @greater_arrow_start_equal @greater' by @greater_arrow_start;
|
||||
|
||||
sub @less' @exclam @hyphen @hyphen by @less_arrow_start;
|
||||
sub @less_arrow_start @exclam @hyphen' @hyphen by @hyphen_arrow;
|
||||
sub @less_arrow_start @exclam @hyphen_arrow @hyphen' by @hyphen_arrow;
|
||||
|
||||
#< feature
|
||||
} c003;
|
52
features/c004.fea
Normal file
52
features/c004.fea
Normal file
@ -0,0 +1,52 @@
|
||||
feature c004 {
|
||||
# Coding Ligature 001—999
|
||||
# Pipe substitution
|
||||
|
||||
#> feature
|
||||
|
||||
@less_ = [less less.case];
|
||||
@less_pipe = [less.pipe less.pipe.case];
|
||||
@greater_ = [greater greater.case];
|
||||
@greater_pipe = [greater.pipe greater.pipe.case];
|
||||
@bar = [bar.pipe bar.case.pipe];
|
||||
@bar_c = [bar.c2_1 bar.c2_2 bar bar.c3_1 bar.c3_3 bar.pipe];
|
||||
@bar_c_case = [bar.case.c2_1 bar.case.c2_2 bar.case bar.case.c3_1 bar.case.c3_3 bar.case.pipe];
|
||||
|
||||
sub @less_' @bar_c by @less_pipe;
|
||||
sub @less_' @bar_c_case by @less_pipe;
|
||||
|
||||
sub @bar_c' @bar_c @bar_c @greater by bar.pipe;
|
||||
sub bar.pipe @bar_c' @bar_c @greater by bar.pipe;
|
||||
sub bar.pipe bar.pipe @bar_c' @greater by bar.pipe;
|
||||
sub @bar_c' @bar_c @greater by bar.pipe;
|
||||
sub bar.pipe @bar_c' @greater by bar.pipe;
|
||||
sub @bar_c' @greater by bar.pipe;
|
||||
|
||||
sub @bar_c_case' @bar_c_case @bar_c_case @greater by bar.case.pipe;
|
||||
sub bar.case.pipe @bar_c_case' @bar_c_case @greater by bar.case.pipe;
|
||||
sub bar.case.pipe bar.case.pipe @bar_c_case' @greater by bar.case.pipe;
|
||||
sub @bar_c_case' @bar_c_case @greater by bar.case.pipe;
|
||||
sub bar.case.pipe @bar_c_case' @greater by bar.case.pipe;
|
||||
sub @bar_c_case' @greater by bar.case.pipe;
|
||||
|
||||
sub @less_pipe @bar_c' @bar_c @bar_c by bar.pipe;
|
||||
sub @less_pipe bar.pipe @bar_c' @bar_c by bar.pipe;
|
||||
sub @less_pipe bar.pipe bar.pipe @bar_c' by bar.pipe;
|
||||
sub @less_pipe @bar_c' @bar_c by bar.pipe;
|
||||
sub @less_pipe bar.pipe @bar_c' by bar.pipe;
|
||||
sub @less_pipe @bar_c' by bar.pipe;
|
||||
|
||||
sub @less_pipe @bar_c_case' @bar_c_case @bar_c_case by bar.case.pipe;
|
||||
sub @less_pipe bar.case.pipe @bar_c_case' @bar_c_case by bar.case.pipe;
|
||||
sub @less_pipe bar.case.pipe bar.case.pipe @bar_c_case' by bar.case.pipe;
|
||||
sub @less_pipe @bar_c_case' @bar_c_case by bar.case.pipe;
|
||||
sub @less_pipe bar.case.pipe @bar_c_case' by bar.case.pipe;
|
||||
sub @less_pipe @bar_c_case' by bar.case.pipe;
|
||||
|
||||
sub bar.pipe @greater_' by @greater_pipe;
|
||||
sub bar.case.pipe @greater_' by @greater_pipe;
|
||||
|
||||
#< feature
|
||||
|
||||
} c004;
|
||||
|
86
features/frac.fea
Normal file
86
features/frac.fea
Normal file
@ -0,0 +1,86 @@
|
||||
feature frac {
|
||||
# Fractions
|
||||
|
||||
#> featur
|
||||
|
||||
# Arbitrary fractions (based on opentypecookbook.com)
|
||||
|
||||
lookup frac_bar {
|
||||
ignore sub slash @figs @figs @figs @figs @figs @figs @figs @figs @figs @figs slash';
|
||||
ignore sub slash' @figs @figs @figs @figs @figs @figs @figs @figs @figs @figs slash;
|
||||
ignore sub slash @figs @figs @figs @figs @figs @figs @figs @figs @figs slash';
|
||||
ignore sub slash' @figs @figs @figs @figs @figs @figs @figs @figs @figs slash;
|
||||
ignore sub slash @figs @figs @figs @figs @figs @figs @figs @figs slash';
|
||||
ignore sub slash' @figs @figs @figs @figs @figs @figs @figs @figs slash;
|
||||
ignore sub slash @figs @figs @figs @figs @figs @figs @figs slash';
|
||||
ignore sub slash' @figs @figs @figs @figs @figs @figs @figs slash;
|
||||
ignore sub slash @figs @figs @figs @figs @figs @figs slash';
|
||||
ignore sub slash' @figs @figs @figs @figs @figs @figs slash;
|
||||
ignore sub slash @figs @figs @figs @figs @figs slash';
|
||||
ignore sub slash' @figs @figs @figs @figs @figs slash;
|
||||
ignore sub slash @figs @figs @figs @figs slash';
|
||||
ignore sub slash' @figs @figs @figs @figs slash;
|
||||
ignore sub slash @figs @figs @figs slash';
|
||||
ignore sub slash' @figs @figs @figs slash;
|
||||
ignore sub slash @figs @figs slash';
|
||||
ignore sub slash' @figs @figs slash;
|
||||
ignore sub slash @figs slash';
|
||||
ignore sub slash' @figs slash;
|
||||
ignore sub slash slash';
|
||||
ignore sub slash' slash;
|
||||
sub @figs slash' @figs by fraction;
|
||||
} frac_bar;
|
||||
|
||||
lookup numr1 {
|
||||
sub @figs' fraction by @numr;
|
||||
} numr1;
|
||||
|
||||
lookup numr2 {
|
||||
sub @figs' @numr fraction by @numr;
|
||||
} numr2;
|
||||
|
||||
lookup numr3 {
|
||||
sub @figs' @numr @numr fraction by @numr;
|
||||
} numr3;
|
||||
|
||||
lookup numr4 {
|
||||
sub @figs' @numr @numr @numr fraction by @numr;
|
||||
} numr4;
|
||||
|
||||
lookup numr5 {
|
||||
sub @figs' @numr @numr @numr @numr fraction by @numr;
|
||||
} numr5;
|
||||
|
||||
lookup numr6 {
|
||||
sub @figs' @numr @numr @numr @numr @numr fraction by @numr;
|
||||
} numr6;
|
||||
|
||||
lookup numr7 {
|
||||
sub @figs' @numr @numr @numr @numr @numr @numr fraction by @numr;
|
||||
} numr7;
|
||||
|
||||
lookup numr8 {
|
||||
sub @figs' @numr @numr @numr @numr @numr @numr @numr fraction by @numr;
|
||||
} numr8;
|
||||
|
||||
lookup numr9 {
|
||||
sub @figs' @numr @numr @numr @numr @numr @numr @numr @numr fraction by @numr;
|
||||
} numr9;
|
||||
|
||||
lookup numr10 {
|
||||
sub @figs' @numr @numr @numr @numr @numr @numr @numr @numr @numr fraction by @numr;
|
||||
} numr10;
|
||||
|
||||
lookup dnom {
|
||||
sub [fraction @dnom] @figs' by @dnom;
|
||||
} dnom;
|
||||
|
||||
#< feature
|
||||
} frac;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
20
features/posa.fea
Normal file
20
features/posa.fea
Normal file
@ -0,0 +1,20 @@
|
||||
feature c002 {
|
||||
# Coding Ligature 001—999
|
||||
# Adjust punctuation
|
||||
|
||||
#> feature
|
||||
|
||||
pos @uppercase_actor @adjust_punctuation' @adjust_punctuation @uppercase_actor <40 0 0 0>;
|
||||
pos @uppercase_actor @adjust_punctuation @adjust_punctuation' @uppercase_actor <-40 0 0 0>;
|
||||
pos @uppercase_actor @adjust_punctuation' @adjust_punctuation @adjust_punctuation @uppercase_actor <80 0 0 0>;
|
||||
pos @uppercase_actor @adjust_punctuation @adjust_punctuation' @adjust_punctuation @uppercase_actor <0 0 0 0>;
|
||||
pos @uppercase_actor @adjust_punctuation @adjust_punctuation @adjust_punctuation' @uppercase_actor <-80 0 0 0>;
|
||||
|
||||
pos @space_actor @adjust_punctuation' @adjust_punctuation @space_actor <40 0 0 0>;
|
||||
pos @space_actor @adjust_punctuation @adjust_punctuation' @space_actor <-40 0 0 0>;
|
||||
pos @space_actor @adjust_punctuation' @adjust_punctuation @adjust_punctuation @space_actor <80 0 0 0>;
|
||||
pos @space_actor @adjust_punctuation @adjust_punctuation' @adjust_punctuation @space_actor <0 0 0 0>;
|
||||
pos @space_actor @adjust_punctuation @adjust_punctuation @adjust_punctuation' @space_actor <-80 0 0 0>;
|
||||
|
||||
#< feature
|
||||
} c002;
|
34
index.html
Normal file
34
index.html
Normal file
@ -0,0 +1,34 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Document</title>
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: "CommitMono";
|
||||
src: url("CommitMonoV10.woff2");
|
||||
}
|
||||
body {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 90vh;
|
||||
overflow: hidden;
|
||||
}
|
||||
p {
|
||||
font-family: "CommitMono";
|
||||
font-size: 5rem;
|
||||
background-color: hsl(0, 0%, 50%);
|
||||
line-height: calc(7 / 12);
|
||||
width: calc(5rem * 0.5 * 27);
|
||||
}
|
||||
</style>
|
||||
<script src="https://cdn.jsdelivr.net/npm/opentype.js@latest/dist/opentype.min.js" defer></script>
|
||||
<script src="t.js" defer></script>
|
||||
</head>
|
||||
<body>
|
||||
<p>Hello Button Type TEXT TEST</p>
|
||||
</body>
|
||||
</html>
|
890
package-lock.json
generated
Normal file
890
package-lock.json
generated
Normal file
@ -0,0 +1,890 @@
|
||||
{
|
||||
"name": "commit-webtests",
|
||||
"version": "0.0.0",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "commit-webtests",
|
||||
"version": "0.0.0",
|
||||
"devDependencies": {
|
||||
"vite": "^4.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/android-arm": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz",
|
||||
"integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/android-arm64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz",
|
||||
"integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/android-x64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz",
|
||||
"integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/darwin-arm64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz",
|
||||
"integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/darwin-x64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz",
|
||||
"integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/freebsd-arm64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz",
|
||||
"integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"freebsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/freebsd-x64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz",
|
||||
"integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"freebsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-arm": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz",
|
||||
"integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-arm64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz",
|
||||
"integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-ia32": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz",
|
||||
"integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-loong64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz",
|
||||
"integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==",
|
||||
"cpu": [
|
||||
"loong64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-mips64el": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz",
|
||||
"integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==",
|
||||
"cpu": [
|
||||
"mips64el"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-ppc64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz",
|
||||
"integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-riscv64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz",
|
||||
"integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-s390x": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz",
|
||||
"integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==",
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-x64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz",
|
||||
"integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/netbsd-x64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz",
|
||||
"integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"netbsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/openbsd-x64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz",
|
||||
"integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"openbsd"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/sunos-x64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz",
|
||||
"integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"sunos"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/win32-arm64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz",
|
||||
"integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/win32-ia32": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz",
|
||||
"integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/win32-x64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz",
|
||||
"integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/esbuild": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz",
|
||||
"integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"bin": {
|
||||
"esbuild": "bin/esbuild"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@esbuild/android-arm": "0.16.17",
|
||||
"@esbuild/android-arm64": "0.16.17",
|
||||
"@esbuild/android-x64": "0.16.17",
|
||||
"@esbuild/darwin-arm64": "0.16.17",
|
||||
"@esbuild/darwin-x64": "0.16.17",
|
||||
"@esbuild/freebsd-arm64": "0.16.17",
|
||||
"@esbuild/freebsd-x64": "0.16.17",
|
||||
"@esbuild/linux-arm": "0.16.17",
|
||||
"@esbuild/linux-arm64": "0.16.17",
|
||||
"@esbuild/linux-ia32": "0.16.17",
|
||||
"@esbuild/linux-loong64": "0.16.17",
|
||||
"@esbuild/linux-mips64el": "0.16.17",
|
||||
"@esbuild/linux-ppc64": "0.16.17",
|
||||
"@esbuild/linux-riscv64": "0.16.17",
|
||||
"@esbuild/linux-s390x": "0.16.17",
|
||||
"@esbuild/linux-x64": "0.16.17",
|
||||
"@esbuild/netbsd-x64": "0.16.17",
|
||||
"@esbuild/openbsd-x64": "0.16.17",
|
||||
"@esbuild/sunos-x64": "0.16.17",
|
||||
"@esbuild/win32-arm64": "0.16.17",
|
||||
"@esbuild/win32-ia32": "0.16.17",
|
||||
"@esbuild/win32-x64": "0.16.17"
|
||||
}
|
||||
},
|
||||
"node_modules/fsevents": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
||||
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/function-bind": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
|
||||
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/has": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
|
||||
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"function-bind": "^1.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/is-core-module": {
|
||||
"version": "2.11.0",
|
||||
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
|
||||
"integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"has": "^1.0.3"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/nanoid": {
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
|
||||
"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"nanoid": "bin/nanoid.cjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/path-parse": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
|
||||
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/picocolors": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
|
||||
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/postcss": {
|
||||
"version": "8.4.21",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
|
||||
"integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/postcss/"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/postcss"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"nanoid": "^3.3.4",
|
||||
"picocolors": "^1.0.0",
|
||||
"source-map-js": "^1.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || >=14"
|
||||
}
|
||||
},
|
||||
"node_modules/resolve": {
|
||||
"version": "1.22.1",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
|
||||
"integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"is-core-module": "^2.9.0",
|
||||
"path-parse": "^1.0.7",
|
||||
"supports-preserve-symlinks-flag": "^1.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"resolve": "bin/resolve"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/rollup": {
|
||||
"version": "3.14.0",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.14.0.tgz",
|
||||
"integrity": "sha512-o23sdgCLcLSe3zIplT9nQ1+r97okuaiR+vmAPZPTDYB7/f3tgWIYNyiQveMsZwshBT0is4eGax/HH83Q7CG+/Q==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"rollup": "dist/bin/rollup"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.18.0",
|
||||
"npm": ">=8.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"fsevents": "~2.3.2"
|
||||
}
|
||||
},
|
||||
"node_modules/source-map-js": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
|
||||
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/supports-preserve-symlinks-flag": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
|
||||
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/vite": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-4.1.1.tgz",
|
||||
"integrity": "sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"esbuild": "^0.16.14",
|
||||
"postcss": "^8.4.21",
|
||||
"resolve": "^1.22.1",
|
||||
"rollup": "^3.10.0"
|
||||
},
|
||||
"bin": {
|
||||
"vite": "bin/vite.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^14.18.0 || >=16.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"fsevents": "~2.3.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@types/node": ">= 14",
|
||||
"less": "*",
|
||||
"sass": "*",
|
||||
"stylus": "*",
|
||||
"sugarss": "*",
|
||||
"terser": "^5.4.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@types/node": {
|
||||
"optional": true
|
||||
},
|
||||
"less": {
|
||||
"optional": true
|
||||
},
|
||||
"sass": {
|
||||
"optional": true
|
||||
},
|
||||
"stylus": {
|
||||
"optional": true
|
||||
},
|
||||
"sugarss": {
|
||||
"optional": true
|
||||
},
|
||||
"terser": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@esbuild/android-arm": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz",
|
||||
"integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@esbuild/android-arm64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz",
|
||||
"integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@esbuild/android-x64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz",
|
||||
"integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@esbuild/darwin-arm64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz",
|
||||
"integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@esbuild/darwin-x64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz",
|
||||
"integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@esbuild/freebsd-arm64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz",
|
||||
"integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@esbuild/freebsd-x64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz",
|
||||
"integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@esbuild/linux-arm": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz",
|
||||
"integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@esbuild/linux-arm64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz",
|
||||
"integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@esbuild/linux-ia32": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz",
|
||||
"integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@esbuild/linux-loong64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz",
|
||||
"integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@esbuild/linux-mips64el": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz",
|
||||
"integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@esbuild/linux-ppc64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz",
|
||||
"integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@esbuild/linux-riscv64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz",
|
||||
"integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@esbuild/linux-s390x": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz",
|
||||
"integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@esbuild/linux-x64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz",
|
||||
"integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@esbuild/netbsd-x64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz",
|
||||
"integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@esbuild/openbsd-x64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz",
|
||||
"integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@esbuild/sunos-x64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz",
|
||||
"integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@esbuild/win32-arm64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz",
|
||||
"integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@esbuild/win32-ia32": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz",
|
||||
"integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@esbuild/win32-x64": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz",
|
||||
"integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"esbuild": {
|
||||
"version": "0.16.17",
|
||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz",
|
||||
"integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@esbuild/android-arm": "0.16.17",
|
||||
"@esbuild/android-arm64": "0.16.17",
|
||||
"@esbuild/android-x64": "0.16.17",
|
||||
"@esbuild/darwin-arm64": "0.16.17",
|
||||
"@esbuild/darwin-x64": "0.16.17",
|
||||
"@esbuild/freebsd-arm64": "0.16.17",
|
||||
"@esbuild/freebsd-x64": "0.16.17",
|
||||
"@esbuild/linux-arm": "0.16.17",
|
||||
"@esbuild/linux-arm64": "0.16.17",
|
||||
"@esbuild/linux-ia32": "0.16.17",
|
||||
"@esbuild/linux-loong64": "0.16.17",
|
||||
"@esbuild/linux-mips64el": "0.16.17",
|
||||
"@esbuild/linux-ppc64": "0.16.17",
|
||||
"@esbuild/linux-riscv64": "0.16.17",
|
||||
"@esbuild/linux-s390x": "0.16.17",
|
||||
"@esbuild/linux-x64": "0.16.17",
|
||||
"@esbuild/netbsd-x64": "0.16.17",
|
||||
"@esbuild/openbsd-x64": "0.16.17",
|
||||
"@esbuild/sunos-x64": "0.16.17",
|
||||
"@esbuild/win32-arm64": "0.16.17",
|
||||
"@esbuild/win32-ia32": "0.16.17",
|
||||
"@esbuild/win32-x64": "0.16.17"
|
||||
}
|
||||
},
|
||||
"fsevents": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
||||
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"function-bind": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
|
||||
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
|
||||
"dev": true
|
||||
},
|
||||
"has": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
|
||||
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"function-bind": "^1.1.1"
|
||||
}
|
||||
},
|
||||
"is-core-module": {
|
||||
"version": "2.11.0",
|
||||
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
|
||||
"integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"nanoid": {
|
||||
"version": "3.3.4",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
|
||||
"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
|
||||
"dev": true
|
||||
},
|
||||
"path-parse": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
|
||||
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
|
||||
"dev": true
|
||||
},
|
||||
"picocolors": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
|
||||
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
|
||||
"dev": true
|
||||
},
|
||||
"postcss": {
|
||||
"version": "8.4.21",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
|
||||
"integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"nanoid": "^3.3.4",
|
||||
"picocolors": "^1.0.0",
|
||||
"source-map-js": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"resolve": {
|
||||
"version": "1.22.1",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
|
||||
"integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-core-module": "^2.9.0",
|
||||
"path-parse": "^1.0.7",
|
||||
"supports-preserve-symlinks-flag": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"rollup": {
|
||||
"version": "3.14.0",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.14.0.tgz",
|
||||
"integrity": "sha512-o23sdgCLcLSe3zIplT9nQ1+r97okuaiR+vmAPZPTDYB7/f3tgWIYNyiQveMsZwshBT0is4eGax/HH83Q7CG+/Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fsevents": "~2.3.2"
|
||||
}
|
||||
},
|
||||
"source-map-js": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
|
||||
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
|
||||
"dev": true
|
||||
},
|
||||
"supports-preserve-symlinks-flag": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
|
||||
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
|
||||
"dev": true
|
||||
},
|
||||
"vite": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-4.1.1.tgz",
|
||||
"integrity": "sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"esbuild": "^0.16.14",
|
||||
"fsevents": "~2.3.2",
|
||||
"postcss": "^8.4.21",
|
||||
"resolve": "^1.22.1",
|
||||
"rollup": "^3.10.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
14
package.json
Normal file
14
package.json
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"name": "commit-webtests",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"devDependencies": {
|
||||
"vite": "^4.1.0"
|
||||
}
|
||||
}
|
1
public/vite.svg
Normal file
1
public/vite.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
|
After Width: | Height: | Size: 1.5 KiB |
27
t.js
Normal file
27
t.js
Normal file
@ -0,0 +1,27 @@
|
||||
console.log("opentype test")
|
||||
|
||||
async function initFont() {
|
||||
const font = await opentype.load("/fonts/CommitMonoOTV1-450.otf")
|
||||
|
||||
console.log(font)
|
||||
console.log(font.glyphs.glyphs[50].path)
|
||||
console.log(font.glyphs.glyphs[76].path)
|
||||
|
||||
const newFont = switchGlyphs(font, 50, 76)
|
||||
|
||||
console.log(newFont)
|
||||
console.log(newFont.glyphs.glyphs[50].path)
|
||||
console.log(newFont.glyphs.glyphs[76].path)
|
||||
|
||||
// newFont.download()
|
||||
}
|
||||
|
||||
function switchGlyphs(font, glyphIndexA, glyphIndexB) {
|
||||
const glyphPathA = font.glyphs.glyphs[glyphIndexA].path
|
||||
const glyphPathB = font.glyphs.glyphs[glyphIndexB].path
|
||||
font.glyphs.glyphs[glyphIndexB].path = glyphPathA
|
||||
font.glyphs.glyphs[glyphIndexA].path = glyphPathB
|
||||
return font
|
||||
}
|
||||
|
||||
initFont()
|
91
txt/ligatures.txt
Normal file
91
txt/ligatures.txt
Normal file
@ -0,0 +1,91 @@
|
||||
LIGATURE INTENT FINISH
|
||||
|
||||
-> y f
|
||||
--> y f
|
||||
---> y f
|
||||
<- y f
|
||||
<-- y f
|
||||
<--- y f
|
||||
<!-- y f
|
||||
|
||||
=> y f
|
||||
==> y f
|
||||
=>> y f
|
||||
=<< y f
|
||||
>=> y f
|
||||
<=< y f
|
||||
=>= y f
|
||||
=<= y f
|
||||
|
||||
|
||||
!= m f
|
||||
!== y f
|
||||
|
||||
== n f
|
||||
=== n f
|
||||
|
||||
.. y f
|
||||
... y f
|
||||
:: y f
|
||||
;; y f
|
||||
::: y f
|
||||
?. y f
|
||||
!! y f
|
||||
!. y f
|
||||
|
||||
..= m f
|
||||
..< m f
|
||||
:= y f
|
||||
=: y f
|
||||
:# y f
|
||||
#: y f
|
||||
|
||||
www y f
|
||||
|
||||
|| y f
|
||||
// y f
|
||||
|
||||
#### m f
|
||||
|
||||
<> y f
|
||||
<~> y f
|
||||
|
||||
:> y f
|
||||
:< y f
|
||||
>: y f
|
||||
<: y f
|
||||
::> y f
|
||||
::< y f
|
||||
>:: y f
|
||||
<:: y f
|
||||
:<: y f
|
||||
:>: y f
|
||||
|
||||
/\ y f
|
||||
\/ y f
|
||||
-| y f
|
||||
|- y f
|
||||
_|_ y f
|
||||
|
||||
<| y f
|
||||
<|| y f
|
||||
<||| y f
|
||||
|> y f
|
||||
||> y f
|
||||
|||> y f
|
||||
|
||||
|] y u
|
||||
[| y u
|
||||
|} y u
|
||||
{| y u
|
||||
|
||||
<$ y f
|
||||
$> y f
|
||||
<$> y f
|
||||
<+ y f
|
||||
+> y f
|
||||
<+> y f
|
||||
<* y f
|
||||
*> y f
|
||||
<*> y f
|
||||
|
0
txt/test.txt
Normal file
0
txt/test.txt
Normal file
Loading…
Reference in New Issue
Block a user