* Fixed mapping for U+028C, U+034D.
* Fixed the thickness of thick arrows under full width. * Fixed missing `TM` and `SM` symbol. * Fixed weight of dotted numbers. * Fix APL symbols' metric under Aile.
This commit is contained in:
parent
39fd7db0c0
commit
0ce2397179
16 changed files with 551 additions and 152 deletions
|
@ -2,3 +2,8 @@
|
|||
* Add straight lambda (`λ`) shape, and corresponded variant selector `cv94`. Old shape is placed under `cv95` (#467).
|
||||
* Add U+2423 `OPEN BOX` (`␣`) (#469).
|
||||
* Add Bashkir Ka (U+04A0, U+04A1) (#441).
|
||||
* Fixed mapping for U+028C, U+034D.
|
||||
* Fixed the thickness of thick arrows under full width.
|
||||
* Fixed missing `TM` and `SM` symbol.
|
||||
* Fixed weight of dotted numbers.
|
||||
* Fix APL symbols' metric under Aile.
|
|
@ -95,7 +95,7 @@ glyph-block AutoBuild-Enclosure : begin
|
|||
set-width width
|
||||
if (w == ww && unicode) : assign-unicode unicode
|
||||
include : circleInner dscale miniatureFont unicode parts width bal baly
|
||||
include : OShape top bot left right sw (SMALLSMOOTHA * width / WIDTH) (SMALLSMOOTHB * width / WIDTH)
|
||||
include : OShape top bot left right sw (SMALLSMOOTHA * width / HALF-UPM) (SMALLSMOOTHB * width / HALF-UPM)
|
||||
|
||||
apply-transform : Upright
|
||||
apply-transform : Translate 0 (symbolMid - CAP * dscale / 2)
|
||||
|
@ -129,7 +129,7 @@ glyph-block AutoBuild-Enclosure : begin
|
|||
set-width width
|
||||
if (w == ww && unicode) : assign-unicode unicode
|
||||
include : difference
|
||||
OShapeOutline top bot left right sw (SMALLSMOOTHA * width / WIDTH) (SMALLSMOOTHB * width / WIDTH)
|
||||
OShapeOutline top bot left right sw (SMALLSMOOTHA * width / HALF-UPM) (SMALLSMOOTHB * width / HALF-UPM)
|
||||
circleInner dscale miniatureFont unicode parts width bal baly
|
||||
|
||||
apply-transform : Upright
|
||||
|
@ -190,15 +190,15 @@ glyph-block AutoBuild-Enclosure : begin
|
|||
set-width width
|
||||
if (w == ww && unicode) : assign-unicode unicode
|
||||
include : circleInner dscale miniatureFont unicode parts width bal baly
|
||||
include : OShape top bot left right sw1 (SMALLSMOOTHA * width / WIDTH) (SMALLSMOOTHB * width / WIDTH)
|
||||
include : OShape top bot left right sw1 (SMALLSMOOTHA * width / HALF-UPM) (SMALLSMOOTHB * width / HALF-UPM)
|
||||
include : OShape
|
||||
top - sw + sw1
|
||||
bot + sw - sw1
|
||||
left + sw * HVCONTRAST - sw1 * HVCONTRAST
|
||||
right - sw * HVCONTRAST + sw1 * HVCONTRAST
|
||||
begin sw1
|
||||
SMALLSMOOTHA * width / WIDTH - sw + sw1
|
||||
SMALLSMOOTHB * width / WIDTH - sw + sw1
|
||||
SMALLSMOOTHA * width / HALF-UPM - sw + sw1
|
||||
SMALLSMOOTHB * width / HALF-UPM - sw + sw1
|
||||
|
||||
apply-transform : Upright
|
||||
apply-transform : Translate 0 (symbolMid - CAP * dscale / 2)
|
||||
|
@ -288,13 +288,14 @@ glyph-block AutoBuild-Enclosure : begin
|
|||
if (w == ww) : save gn unicode
|
||||
: else : save gn
|
||||
|
||||
define [createDottedGlyphs digits records] : begin
|
||||
define [DottedScale digits width] : 1 / [Math.pow [AdjustDigitCount digits width] 0.5]
|
||||
define [createDottedGlyphs digits gidDot records] : begin
|
||||
foreach {suffix ww} [items-of circleWidthClasses] : do
|
||||
local pendingGlyphs : records.map : [record] => record.1
|
||||
local miniatureFont : Miniature
|
||||
glyphs -- [[pendingGlyphs.reduce : [a b] => [a.concat b]].concat {'period'}]
|
||||
glyphs -- [[pendingGlyphs.reduce : [a b] => [a.concat b]].concat {gidDot}]
|
||||
crowd -- [BraceCrowd digits ww]
|
||||
scale -- [BraceScale digits ww]
|
||||
scale -- [DottedScale digits ww]
|
||||
sbscale -- 1
|
||||
|
||||
foreach {unicode parts w} [items-of records] : do
|
||||
|
@ -303,7 +304,7 @@ glyph-block AutoBuild-Enclosure : begin
|
|||
sketch
|
||||
set-width width
|
||||
local tw 0
|
||||
foreach [glyphid : items-of : parts.concat {'period'}] : begin
|
||||
foreach [glyphid : items-of : parts.concat {gidDot}] : begin
|
||||
local g miniatureFont.(glyphid)
|
||||
if tw : begin # Add a little kern
|
||||
set tw : tw - SB
|
||||
|
@ -442,7 +443,15 @@ glyph-block AutoBuild-Enclosure : begin
|
|||
0x2488 + j - 1
|
||||
digitGlyphNames j
|
||||
begin WIDE-WIDTH-1
|
||||
createDottedGlyphs 1 compositions
|
||||
createDottedGlyphs 1 'period' compositions
|
||||
|
||||
if [not recursive] : do "Single-digit comma"
|
||||
local compositions {}
|
||||
foreach [j : range 0 till 9] : compositions.push : list
|
||||
0x1F101 + j
|
||||
digitGlyphNames j
|
||||
begin WIDE-WIDTH-1
|
||||
createDottedGlyphs 1 'comma' compositions
|
||||
|
||||
if [not recursive] : do "Double-digit dotted"
|
||||
local compositions : list
|
||||
|
@ -450,4 +459,4 @@ glyph-block AutoBuild-Enclosure : begin
|
|||
0x2488 + j - 1
|
||||
digitGlyphNames j
|
||||
begin WIDE-WIDTH-1
|
||||
createDottedGlyphs 2 compositions
|
||||
createDottedGlyphs 2 'period' compositions
|
||||
|
|
|
@ -359,6 +359,25 @@ glyph-block Autobuild-Transformed : begin
|
|||
list 0x1DF3 'odieresis'
|
||||
list 0x1DF4 'udieresis'
|
||||
|
||||
do "Composite superscripts and subscripts"
|
||||
define [DoubleSuperscript a b] : glyph-construction
|
||||
include a
|
||||
apply-transform : Translate (-WIDTH * 0.6) 0
|
||||
include b
|
||||
apply-transform : Upright
|
||||
apply-transform : Translate (-WIDTH * 0.2) (-CAP)
|
||||
apply-transform : Scale 0.8
|
||||
apply-transform : Translate MIDDLE CAP
|
||||
apply-transform : Italify
|
||||
|
||||
sketch # tradeMark
|
||||
include : DoubleSuperscript [refer-glyph 'supT'] [refer-glyph 'supM']
|
||||
save 'tradeMark' 0x2122
|
||||
|
||||
sketch # serviceMark
|
||||
include : DoubleSuperscript [refer-glyph 'supS'] [refer-glyph 'supM']
|
||||
save 'serviceMark' 0x2120
|
||||
|
||||
define [createFracImpl suffix records fine scaleFactor closing] : begin
|
||||
local pendingGlyphs : [records.map : [record] => record.1].concat : records.map : [record] => record.2
|
||||
local miniatureFont : Miniature
|
||||
|
@ -418,6 +437,8 @@ glyph-block Autobuild-Transformed : begin
|
|||
list 0x2189 'zero.lnum' 'three.lnum'
|
||||
# care-of
|
||||
list 0x2100 'largescripta' 'C'
|
||||
list 0x2101 'largescripta' 'S'
|
||||
list 0x214D 'A' 'S'
|
||||
list 0x2105 'C' 'O'
|
||||
list 0x2106 'C' 'U'
|
||||
# fraction bar
|
||||
|
@ -428,47 +449,49 @@ glyph-block Autobuild-Transformed : begin
|
|||
list 0xE0A1 'L' 'N'
|
||||
list 0xE0A3 'C' 'N'
|
||||
|
||||
|
||||
# Unicode Ligatures
|
||||
define [createLigatures _shrink1 _shrink2 wadj1 wadj2 records] : begin
|
||||
define circleWidthClasses {
|
||||
{'hwid' (WIDTH * para.diversityM) WIDTH}
|
||||
{'fwid' WIDE-WIDTH-0 WIDE-WIDTH-0}
|
||||
}
|
||||
|
||||
define [createLigatures _shrink1 _shrink2 wadj1 wadj2 records] : for-width-kinds WIDE-WIDTH-2
|
||||
local ww : if FMosaicWide (MosaicWidth * para.diversityM) MosaicWidth
|
||||
local pendingGlyphs1 : records.map : [record] => record.1
|
||||
local pendingGlyphs2 : records.map : [record] => record.2
|
||||
local wide : para.spaing > 1 || para.diversityM > 1
|
||||
local shrink1 : if (wide) 1 [clamp 0 1 (_shrink1 * para.diversityM)]
|
||||
local shrink2 : if (wide) 1 [clamp 0 1 (_shrink2 * para.diversityM)]
|
||||
local shrink1 : if FMosaicWide 1 [clamp 0 1 (_shrink1 * ww / WIDTH)]
|
||||
local shrink2 : if FMosaicWide 1 [clamp 0 1 (_shrink2 * ww / WIDTH)]
|
||||
local df1 : Thinner pendingGlyphs1 shrink1
|
||||
local df2 : Thinner pendingGlyphs2 shrink2
|
||||
|
||||
foreach [{unicode c1 c2 mark} : items-of records] : begin
|
||||
local glyphName "\(c1)_\(c2)"
|
||||
foreach [{unicode c1 c2} : items-of records] : begin
|
||||
local glyphName : MangleName "\(c1)_\(c2)"
|
||||
if [query-glyph glyphName] : begin
|
||||
local j 2
|
||||
while [query-glyph (glyphName + j)] : inc j
|
||||
set glyphName (glyphName + j)
|
||||
if wide : begin
|
||||
sketch
|
||||
include df2.(c2)
|
||||
include : Translate df1.(c1).advanceWidth 0
|
||||
include df1.(c1)
|
||||
set-width (df1.(c1).advanceWidth + df2.(c2).advanceWidth)
|
||||
save glyphName unicode
|
||||
: else
|
||||
local kern : SB * 7/8 * (shrink1 + shrink2)
|
||||
local refW : WIDTH * (shrink1 * wadj1 + shrink2 * wadj2) - kern
|
||||
local targetW : WIDTH * para.diversityM
|
||||
sketch
|
||||
include df2.(c2)
|
||||
include : Translate (WIDTH * shrink1 * wadj1 - kern) 0
|
||||
include df1.(c1)
|
||||
include : Translate (-WIDTH * shrink1 * (1 - wadj1) / 2) 0
|
||||
include : Upright
|
||||
include : Translate (-refW / 2) 0
|
||||
include : Scale ((targetW - SB * 1.25) / (targetW - SB * 2) * targetW / refW) 1
|
||||
include : Translate (targetW / 2) 0
|
||||
include : Italify
|
||||
|
||||
if mark : include [DivFrame para.diversityM].markSet.(mark)
|
||||
save glyphName unicode
|
||||
if FMosaicWide : sketch
|
||||
set-width (df1.(c1).advanceWidth + df2.(c2).advanceWidth)
|
||||
include df2.(c2)
|
||||
include : Translate df1.(c1).advanceWidth 0
|
||||
include df1.(c1)
|
||||
save glyphName [MangleUnicode unicode]
|
||||
: else : sketch
|
||||
set-width ww
|
||||
local sumChildrenWidth : df1.(c1).advanceWidth * wadj1 + df2.(c2).advanceWidth * wadj2
|
||||
local kern : if FMosaicWide 0 : Math.max 0 (SB * 7/8 * (shrink1 + shrink2) - [Math.max 0 (ww - sumChildrenWidth)])
|
||||
local refW : sumChildrenWidth - kern
|
||||
include df2.(c2)
|
||||
include : Translate (df1.(c1).advanceWidth * wadj1 - kern) 0
|
||||
include df1.(c1)
|
||||
# include : Translate (-df1.(c1).advanceWidth * (1 - wadj1) / 2) 0
|
||||
include : Upright
|
||||
include : Translate (-refW / 2) 0
|
||||
include : Scale [clamp 0 1 ((ww - SB * 1.25) / (ww - SB * 2) * ww / refW)] 1
|
||||
include : Translate (ww / 2) 0
|
||||
include : Italify
|
||||
save glyphName [MangleUnicode unicode]
|
||||
|
||||
define stdShrink : clamp 0.75 0.9 : linreg 72 0.75 108 0.9 STROKE
|
||||
if [not recursive] : createLigatures stdShrink stdShrink 1 1 : list
|
||||
|
@ -497,6 +520,10 @@ glyph-block Autobuild-Transformed : begin
|
|||
list 0x479 'o' 'y' 'p'
|
||||
list 0x20A7 'P' 's'
|
||||
list 0x20A8 'R' 's'
|
||||
list 0x203c 'exclam' 'exclam'
|
||||
list 0x2047 'question' 'question'
|
||||
list 0x2048 'question' 'exclam'
|
||||
list 0x2049 'exclam' 'question'
|
||||
if [not recursive] : createLigatures 0.7 0.8 0.75 0.9 : list
|
||||
list 0x2103 'degree' 'C'
|
||||
list 0x2109 'degree' 'F'
|
||||
|
|
|
@ -754,7 +754,7 @@ glyph-block LetterUnified-Basic : begin
|
|||
|
||||
turned 'turnv.straight' nothing 'v.straight' MIDDLE (XH / 2)
|
||||
turned 'turnv.curly' nothing 'v.curly' MIDDLE (XH / 2)
|
||||
select-variant 'turnv' 0x474 (follow -- 'Lambda')
|
||||
select-variant 'turnv' 0x28C (follow -- 'Lambda')
|
||||
|
||||
sketch # nu
|
||||
include MarkSet.e
|
||||
|
@ -2895,6 +2895,7 @@ glyph-block LetterUnified-Basic : begin
|
|||
select-variant 'Ghooktop' 0x193 (follow -- 'G')
|
||||
select-variant 'smcpGhooktop' 0x29B (follow -- 'G')
|
||||
select-variant 'Gbar' 0x1E4 (follow -- 'G')
|
||||
turned 'turnG' 0x2141 'G' MIDDLE (CAP / 2)
|
||||
|
||||
### g
|
||||
do "g and related ============================================================================="
|
||||
|
|
|
@ -1059,7 +1059,7 @@ glyph-block Overmarks : begin
|
|||
curl [mix left right 0.5] top [widths.heading (fine * exp) (fine * exp) LEFTWARD]
|
||||
include : VBar markMiddle belowMarkBot top (fine * 2)
|
||||
set-anchor 'below' MARK markMiddle 0 markMiddle belowMarkBot
|
||||
save 'lrArrowBelow' 0x34E
|
||||
save 'upArrowBelow' 0x34E
|
||||
|
||||
# horn and angle marks
|
||||
define [HornDim attX attY overshootX overshootY yrP] : begin
|
||||
|
|
|
@ -26,6 +26,12 @@ glyph-block Symbol-Mosaic-NotDef : begin
|
|||
set currentGlyph.cmpPriority (-100)
|
||||
save 'nbsp' 0xA0
|
||||
|
||||
sketch # markDemoBaseSpace
|
||||
local df : DivFrame 1
|
||||
set-width df.width
|
||||
include df.markSet.plus
|
||||
save 'markDemoBaseSpace' 0xE09E
|
||||
|
||||
sketch # markBaseSpace
|
||||
local df : DivFrame para.diversityI
|
||||
set-width df.width
|
||||
|
|
|
@ -111,7 +111,7 @@ glyph-block Symbol-Arrow : begin
|
|||
include : HookArrowBar x1 y1 x2 y2 halfstroke (arrowSize * mul)
|
||||
|
||||
define [ThickArrowShape color] : lambda [x1 y1 x2 y2] : glyph-construction
|
||||
local headLen : WIDTH * 0.4
|
||||
local headLen : MosaicUnitWidth * [Math.sqrt MosaicWidthScalar] * 0.4
|
||||
local halfBarWidth : headLen / 3
|
||||
local headWidth : halfBarWidth * 2
|
||||
|
||||
|
|
|
@ -400,7 +400,7 @@ glyph-block Symbol-Geometric : begin
|
|||
foreach j [range 0 n] : begin
|
||||
local angle : Math.PI * 2 * j / n
|
||||
local cx : MosaicMiddle + (rightFW - MosaicMiddle) * [Math.cos angle]
|
||||
local cy : (XH / 2) + (rightFW - MosaicMiddle) * [Math.sin angle]
|
||||
local cy : symbolMid + (rightFW - MosaicMiddle) * [Math.sin angle]
|
||||
include : spiro-outline
|
||||
g4 cx (cy + fine)
|
||||
g4 (cx + fine) cy
|
||||
|
@ -408,10 +408,7 @@ glyph-block Symbol-Geometric : begin
|
|||
g4 (cx - fine) cy
|
||||
close
|
||||
|
||||
include scaffold.markSet.e
|
||||
apply-transform [Upright] true
|
||||
apply-transform [Translate 0 (symbolMid - (XH / 2))] true
|
||||
apply-transform [Italify] true
|
||||
include scaffold.markSet.plus
|
||||
save [MangleName 'dottedcircle'] [MangleUnicode 0x25CC]
|
||||
|
||||
hollow [MangleName 'whitesquare'] [MangleUnicode 0x25A1] [MangleName 'blacksquare']
|
||||
|
@ -454,22 +451,6 @@ glyph-block Symbol-Geometric : begin
|
|||
hollow [MangleName 'smallwhitetriangleright'] [MangleUnicode 0x25B9] [MangleName 'smallblacktriangleright'] ss nothing [mix MosaicMiddle leftFW (sts / 3)] symbolMid
|
||||
hollow [MangleName 'whitestar'] [MangleUnicode 0x2606] [MangleName 'blackstar'] spt
|
||||
|
||||
# Mark sampler
|
||||
sketch
|
||||
include MarkSet.e
|
||||
include : spiro-outline
|
||||
g4 MosaicMiddle XH
|
||||
g4 (MosaicMiddle - XH / 2) (XH / 2)
|
||||
g4 MosaicMiddle 0
|
||||
close
|
||||
|
||||
include : spiro-outline
|
||||
g4 MosaicMiddle (XH * 0.9)
|
||||
g4 (MosaicMiddle + XH * 0.4) (XH * 0.5)
|
||||
g4 MosaicMiddle (XH * 0.1)
|
||||
close
|
||||
save [MangleName 'marksampler'] [MangleUnicode 0xE09E]
|
||||
|
||||
# Rounded
|
||||
sketch # roundwhitesquare, U+25A2
|
||||
set-width MosaicWidth
|
||||
|
|
|
@ -1140,7 +1140,7 @@ glyph-block Symbol-Math-Relation : begin
|
|||
glyph-block Symbol-Math-Complement : begin
|
||||
glyph-block-import LetterUnified-Basic : CShape
|
||||
sketch # complement
|
||||
include : CShape operTop operBot OPERATORSTROKE
|
||||
include : CShape [mix symbolMid operTop 1.1] [mix symbolMid operBot 1.1] OPERATORSTROKE
|
||||
save 'complement' 0x2201
|
||||
|
||||
glyph-block Symbol-Math-Negation : begin
|
||||
|
@ -1183,7 +1183,7 @@ glyph-block Symbol-Math-Large-Operators : for-width-kinds WIDE-WIDTH-1
|
|||
glyph-block-import LetterUnified-Extended : SigmaShape PiShape
|
||||
|
||||
define diversityLargeOperators : Math.max para.diversityM (MosaicWidth / WIDTH)
|
||||
define df : DivFrame diversityLargeOperators 0 [if FMosaifWide diversityLargeOperators 1]
|
||||
define df : DivFrame diversityLargeOperators 0 [if FMosaicWide diversityLargeOperators 1]
|
||||
|
||||
sketch # sum
|
||||
set-width df.width
|
||||
|
@ -1336,36 +1336,36 @@ glyph-block Symbol-Math-APL : begin
|
|||
include : intersection [refer-glyph 'aplsquareShadow'] shape
|
||||
include : ScaleAround MIDDLE symbolMid aplBoxInnerScale
|
||||
|
||||
composite [refer-glyph 'space'] [aplBoxed : refer-glyph 'equal'] [into-unicode 0x2338]
|
||||
composite [refer-glyph 'space'] [aplBoxed : refer-glyph 'divide'] [into-unicode 0x2339]
|
||||
composite [refer-glyph 'space'] [aplBoxed : refer-glyph 'whitediamond.hwid'] [into-unicode 0x233A]
|
||||
composite [refer-glyph 'space'] [aplBoxed : refer-glyph 'smallwhitecircle.hwid'] [into-unicode 0x233B]
|
||||
composite [refer-glyph 'space'] [aplBoxed : refer-glyph 'whitecircle.hwid'] [into-unicode 0x233C]
|
||||
composite [refer-glyph 'space'] [Overlay [refer-glyph 'aplbar'] [refer-glyph 'whitecircle.hwid']] [into-unicode 0x233D]
|
||||
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'equal'] [into-unicode 0x2338]
|
||||
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'divide'] [into-unicode 0x2339]
|
||||
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'whitediamond.hwid'] [into-unicode 0x233A]
|
||||
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'smallwhitecircle.hwid'] [into-unicode 0x233B]
|
||||
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'whitecircle.hwid'] [into-unicode 0x233C]
|
||||
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'aplbar'] [refer-glyph 'whitecircle.hwid']] [into-unicode 0x233D]
|
||||
composite [refer-glyph 'whitecircle.hwid'] [refer-glyph 'smallwhitecircle.hwid'] [into-unicode 0x233E]
|
||||
composite [refer-glyph 'space'] [Overlay [refer-glyph 'aplminus'] [refer-glyph 'slash']] [into-unicode 0x233F]
|
||||
composite [refer-glyph 'space'] [Overlay [refer-glyph 'aplminus'] [refer-glyph 'backslash']] [into-unicode 0x2340]
|
||||
composite [refer-glyph 'space'] [aplBoxed : refer-glyph 'slash'] [into-unicode 0x2341]
|
||||
composite [refer-glyph 'space'] [aplBoxed : refer-glyph 'backslash'] [into-unicode 0x2342]
|
||||
composite [refer-glyph 'space'] [aplBoxed : refer-glyph 'less'] [into-unicode 0x2343]
|
||||
composite [refer-glyph 'space'] [aplBoxed : refer-glyph 'greater'] [into-unicode 0x2344]
|
||||
composite [refer-glyph 'space'] [Overlay [refer-glyph 'arrowleft.hwid'] [refer-glyph 'aplbar']] [into-unicode 0x2345]
|
||||
composite [refer-glyph 'space'] [Overlay [refer-glyph 'arrowright.hwid'] [refer-glyph 'aplbar']] [into-unicode 0x2346]
|
||||
composite [refer-glyph 'space'] [aplBoxed : refer-glyph 'arrowleft.hwid'] [into-unicode 0x2347]
|
||||
composite [refer-glyph 'space'] [aplBoxed : refer-glyph 'arrowright.hwid'] [into-unicode 0x2348]
|
||||
composite [refer-glyph 'space'] [Overlay [refer-glyph 'aplbackslash'] [refer-glyph 'whitecircle.hwid']] [into-unicode 0x2349]
|
||||
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'aplminus'] [refer-glyph 'slash']] [into-unicode 0x233F]
|
||||
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'aplminus'] [refer-glyph 'backslash']] [into-unicode 0x2340]
|
||||
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'slash'] [into-unicode 0x2341]
|
||||
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'backslash'] [into-unicode 0x2342]
|
||||
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'less'] [into-unicode 0x2343]
|
||||
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'greater'] [into-unicode 0x2344]
|
||||
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'arrowleft.hwid'] [refer-glyph 'aplbar']] [into-unicode 0x2345]
|
||||
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'arrowright.hwid'] [refer-glyph 'aplbar']] [into-unicode 0x2346]
|
||||
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'arrowleft.hwid'] [into-unicode 0x2347]
|
||||
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'arrowright.hwid'] [into-unicode 0x2348]
|
||||
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'aplbackslash'] [refer-glyph 'whitecircle.hwid']] [into-unicode 0x2349]
|
||||
composite [refer-glyph 'bot'] [refer-glyph 'underlineBelow'] [into-unicode 0x234A]
|
||||
composite [refer-glyph 'space'] [Overlay [refer-glyph 'increment'] [refer-glyph 'aplLongBar']] [into-unicode 0x234B]
|
||||
composite [refer-glyph 'space'] [aplBoxed : refer-glyph 'vee'] [into-unicode 0x234C]
|
||||
composite [refer-glyph 'space'] [aplBoxed : refer-glyph 'increment'] [into-unicode 0x234D]
|
||||
composite [refer-glyph 'space'] [Overlay [refer-glyph 'arrowup.hwid'] [refer-glyph 'minus']] [into-unicode 0x234F]
|
||||
composite [refer-glyph 'space'] [aplBoxed : refer-glyph 'arrowup.hwid'] [into-unicode 0x2350]
|
||||
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'increment'] [refer-glyph 'aplLongBar']] [into-unicode 0x234B]
|
||||
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'vee'] [into-unicode 0x234C]
|
||||
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'increment'] [into-unicode 0x234D]
|
||||
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'arrowup.hwid'] [refer-glyph 'minus']] [into-unicode 0x234F]
|
||||
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'arrowup.hwid'] [into-unicode 0x2350]
|
||||
composite [refer-glyph 'top'] [refer-glyph 'overlineAbove'] [into-unicode 0x2351]
|
||||
composite [refer-glyph 'space'] [Overlay [refer-glyph 'nabla'] [refer-glyph 'aplLongBar']] [into-unicode 0x2352]
|
||||
composite [refer-glyph 'space'] [aplBoxed : refer-glyph 'wedge'] [into-unicode 0x2353]
|
||||
composite [refer-glyph 'space'] [aplBoxed : refer-glyph 'nabla'] [into-unicode 0x2354]
|
||||
composite [refer-glyph 'space'] [Overlay [refer-glyph 'arrowdown.hwid'] [refer-glyph 'minus']] [into-unicode 0x2356]
|
||||
composite [refer-glyph 'space'] [aplBoxed : refer-glyph 'arrowdown.hwid'] [into-unicode 0x2357]
|
||||
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'nabla'] [refer-glyph 'aplLongBar']] [into-unicode 0x2352]
|
||||
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'wedge'] [into-unicode 0x2353]
|
||||
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'nabla'] [into-unicode 0x2354]
|
||||
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'arrowdown.hwid'] [refer-glyph 'minus']] [into-unicode 0x2356]
|
||||
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'arrowdown.hwid'] [into-unicode 0x2357]
|
||||
composite [refer-glyph 'singleQuote'] MarkSet.plus [refer-glyph 'underlineBelow'] [into-unicode 0x2358]
|
||||
composite [refer-glyph 'increment'] [refer-glyph 'underlineBelow'] [into-unicode 0x2359]
|
||||
composite [refer-glyph 'whitediamond.hwid'] MarkSet.plus [refer-glyph 'underlineBelow'] [into-unicode 0x235A]
|
||||
|
@ -1378,27 +1378,27 @@ glyph-block Symbol-Math-APL : begin
|
|||
UShape operTop operBot [adviceBlackness 5] true
|
||||
FlipAround MIDDLE symbolMid
|
||||
into-unicode 0x235D
|
||||
composite [refer-glyph 'space'] [aplBoxed : refer-glyph 'singleQuote'] [into-unicode 0x235E]
|
||||
composite [refer-glyph 'space'] [intersection [refer-glyph 'mathOOutline'] [refer-glyph 'opAsterisk.low']] [refer-glyph 'mathO'] [into-unicode 0x235F]
|
||||
composite [refer-glyph 'space'] [aplBoxed : composite [refer-glyph 'colon'] [Realign MIDDLE (XH/2) MIDDLE symbolMid]] [into-unicode 0x2360]
|
||||
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'singleQuote'] [into-unicode 0x235E]
|
||||
composite [refer-glyph 'enquad'] [intersection [refer-glyph 'mathOOutline'] [refer-glyph 'opAsterisk.low']] [refer-glyph 'mathO'] [into-unicode 0x235F]
|
||||
composite [refer-glyph 'enquad'] [aplBoxed : composite [refer-glyph 'colon'] [Realign MIDDLE (XH/2) MIDDLE symbolMid]] [into-unicode 0x2360]
|
||||
composite [refer-glyph 'top'] [refer-glyph 'dieresisAbove'] [into-unicode 0x2361]
|
||||
composite [refer-glyph 'nabla'] [refer-glyph 'dieresisAbove'] [into-unicode 0x2362]
|
||||
composite [refer-glyph 'asterisk.low'] [refer-glyph 'dieresisAbove'] [into-unicode 0x2363]
|
||||
composite [refer-glyph 'smallwhitecircle.hwid'] MarkSet.plus [refer-glyph 'dieresisAbove'] [into-unicode 0x2364]
|
||||
composite [refer-glyph 'whitecircle.hwid'] MarkSet.plus [refer-glyph 'dieresisAbove'] [into-unicode 0x2365]
|
||||
composite [refer-glyph 'space'] [Overlay [refer-glyph 'cup'] [refer-glyph 'aplbar']] [into-unicode 0x2366]
|
||||
composite [refer-glyph 'space'] [Overlay [refer-glyph 'subst'] [refer-glyph 'aplbar']] [into-unicode 0x2367]
|
||||
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'cup'] [refer-glyph 'aplbar']] [into-unicode 0x2366]
|
||||
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'subst'] [refer-glyph 'aplbar']] [into-unicode 0x2367]
|
||||
composite [refer-glyph 'asciitilde.low'] [refer-glyph 'dieresisAbove'] [into-unicode 0x2368]
|
||||
composite [refer-glyph 'greater.narrow'] [refer-glyph 'dieresisAbove'] [into-unicode 0x2369]
|
||||
composite [refer-glyph 'minus'] [refer-glyph 'comma'] [into-unicode 0x236A]
|
||||
composite [refer-glyph 'space'] [Overlay [refer-glyph 'overlaytilde'] [refer-glyph 'nabla']] [into-unicode 0x236B]
|
||||
composite [refer-glyph 'space'] [Overlay [refer-glyph 'overlaytilde'] [refer-glyph 'zero.lnum.unslashed']] [into-unicode 0x236C]
|
||||
composite [refer-glyph 'space'] [Overlay [refer-glyph 'overlaytilde'] [refer-glyph 'bar']] [into-unicode 0x236D]
|
||||
composite [refer-glyph 'space'] [Overlay [refer-glyph 'semicolon'] [refer-glyph 'underscore.belowBaseline']] [into-unicode 0x236E]
|
||||
composite [refer-glyph 'space'] [aplBoxed : refer-glyph 'notequal'] [into-unicode 0x236F]
|
||||
composite [refer-glyph 'space'] [aplBoxed : refer-glyph 'question'] [into-unicode 0x2370]
|
||||
composite [refer-glyph 'space'] [Overlay [refer-glyph 'overlaytilde'] [refer-glyph 'vee']] [into-unicode 0x2371]
|
||||
composite [refer-glyph 'space'] [Overlay [refer-glyph 'overlaytilde'] [refer-glyph 'wedge']] [into-unicode 0x2372]
|
||||
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'overlaytilde'] [refer-glyph 'nabla']] [into-unicode 0x236B]
|
||||
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'overlaytilde'] [refer-glyph 'zero.lnum.unslashed']] [into-unicode 0x236C]
|
||||
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'overlaytilde'] [refer-glyph 'bar']] [into-unicode 0x236D]
|
||||
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'semicolon'] [refer-glyph 'underscore.belowBaseline']] [into-unicode 0x236E]
|
||||
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'notequal'] [into-unicode 0x236F]
|
||||
composite [refer-glyph 'enquad'] [aplBoxed : refer-glyph 'question'] [into-unicode 0x2370]
|
||||
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'overlaytilde'] [refer-glyph 'vee']] [into-unicode 0x2371]
|
||||
composite [refer-glyph 'enquad'] [Overlay [refer-glyph 'overlaytilde'] [refer-glyph 'wedge']] [into-unicode 0x2372]
|
||||
alias 'apliota' 0x2373 'iota'
|
||||
alias 'aplrho' 0x2374 'rho'
|
||||
alias 'aplomega' 0x2375 'omega'
|
||||
|
|
|
@ -491,20 +491,13 @@ glyph-block Symbol-Punctuation : begin
|
|||
include : FlipAround MIDDLE (XH / 2)
|
||||
save 'exclamDown' 0xA1
|
||||
|
||||
sketch # doubleexclam
|
||||
local d : 0.25 * WIDTH
|
||||
include : refer-glyph "exclam"
|
||||
apply-transform : Translate (-d * 2) 0
|
||||
include : refer-glyph "exclam"
|
||||
apply-transform : Translate d 0
|
||||
save 'doubleexclam' 0x203C
|
||||
|
||||
sketch # bar
|
||||
set-width WIDTH
|
||||
set currentGlyph.anchors.above {.type BASE .x MIDDLE .y parenTop}
|
||||
set currentGlyph.anchors.below {.type BASE .x MIDDLE .y parenBot}
|
||||
include : VBar MIDDLE parenBot parenTop
|
||||
save 'bar' '|'
|
||||
save 'dentalclick' 0x1C0
|
||||
|
||||
sketch # parallel
|
||||
set-width WIDTH
|
||||
|
@ -515,7 +508,6 @@ glyph-block Symbol-Punctuation : begin
|
|||
include : VBar (MIDDLE + WIDTH * 0.175) parenBot parenTop sw
|
||||
save 'parallel' 0x2225
|
||||
save 'doubleBar' 0x2016
|
||||
save 'dentalclick' 0x1C0
|
||||
save 'alveolarlateralclick' 0x1C1
|
||||
|
||||
sketch # brokenbar
|
||||
|
@ -822,6 +814,8 @@ glyph-block Symbol-Punctuation : begin
|
|||
include : SlashShape slashDefautLeft slashDefaultRight
|
||||
save 'slash' '/'
|
||||
save 'solidus' 0x2044
|
||||
save 'mathDivSlash' 0x2215
|
||||
|
||||
sketch # doubleSlash
|
||||
define w : adviceBlackness 3
|
||||
define b : Math.max w (WIDTH * 0.15)
|
||||
|
@ -845,6 +839,7 @@ glyph-block Symbol-Punctuation : begin
|
|||
sketch # backslash
|
||||
include : BackslashShape (MIDDLE - backslashWidth / 2) (MIDDLE + backslashWidth / 2)
|
||||
save 'backslash' "\\"
|
||||
save 'mathBackslash' 0x2216
|
||||
sketch # backslash.left
|
||||
include : BackslashShape (MIDDLE - backslashWidth / 2) WIDTH
|
||||
save 'backslash.left'
|
||||
|
@ -855,34 +850,47 @@ glyph-block Symbol-Punctuation : begin
|
|||
|
||||
do 'Dashes'
|
||||
do 'underscore'
|
||||
define openBoxGap : STROKE + [Math.max STROKE (XH / 6)]
|
||||
define [OpenBoxSide y] : begin
|
||||
local height : STROKE + [Math.max STROKE (XH / 6)]
|
||||
return : union
|
||||
VBarLeft SB y (y + height)
|
||||
VBarRight RIGHTSB y (y + height)
|
||||
VBarLeft SB y (y + openBoxGap)
|
||||
VBarRight RIGHTSB y (y + openBoxGap)
|
||||
sketch # underscore.high
|
||||
set-width WIDTH
|
||||
include : HBarBottom SB RIGHTSB 0
|
||||
save 'underscore.high'
|
||||
include : OpenBoxSide 0
|
||||
save 'openBox.high'
|
||||
branch
|
||||
include : HBarBottom SB RIGHTSB (-openBoxGap)
|
||||
save 'doubleUnderscore.high'
|
||||
branch
|
||||
include : OpenBoxSide 0
|
||||
save 'openBox.high'
|
||||
|
||||
sketch # underscore.belowBaseline
|
||||
set-width WIDTH
|
||||
include : HBarTop SB RIGHTSB 0
|
||||
save 'underscore.belowBaseline'
|
||||
include : OpenBoxSide (-STROKE)
|
||||
save 'openBox.belowBaseline'
|
||||
branch
|
||||
include : HBarTop SB RIGHTSB (-openBoxGap)
|
||||
save 'doubleUnderscore.belowBaseline'
|
||||
branch
|
||||
include : OpenBoxSide (-STROKE)
|
||||
save 'openBox.belowBaseline'
|
||||
|
||||
sketch # underscore.low
|
||||
set-width WIDTH
|
||||
include : HBarTop SB RIGHTSB (DESCENDER * 0.9)
|
||||
save 'underscore.low'
|
||||
include : OpenBoxSide (DESCENDER * 0.9)
|
||||
save 'openBox.low'
|
||||
branch
|
||||
include : HBarTop SB RIGHTSB (DESCENDER * 0.9 - openBoxGap)
|
||||
save 'doubleUnderscore.low'
|
||||
branch
|
||||
include : OpenBoxSide (DESCENDER * 0.9)
|
||||
save 'openBox.low'
|
||||
|
||||
select-variant 'underscore' '_'
|
||||
select-variant 'openBox' 0x2423 (follow -- 'underscore')
|
||||
select-variant 'underscore' '_'
|
||||
select-variant 'openBox' 0x2423 (follow -- 'underscore')
|
||||
select-variant 'doubleUnderscore' 0x2017 (follow -- 'underscore')
|
||||
|
||||
sketch # overline
|
||||
include : HBarTop SB RIGHTSB CAP
|
||||
|
@ -927,13 +935,24 @@ glyph-block Symbol-Punctuation : begin
|
|||
save 'bullet' 0x2022
|
||||
save 'hyphenpoint' 0x2027
|
||||
|
||||
sketch # whitebullet
|
||||
set-width WIDE-WIDTH-1
|
||||
local s : [adviceBlackness 5] * 0.75
|
||||
include : difference
|
||||
DotAt FWMIDDLE symbolMid (PERIODRADIUS - O)
|
||||
DotAt FWMIDDLE symbolMid (PERIODRADIUS - O - s)
|
||||
save 'whitebullet' 0x25E6
|
||||
for-width-kinds WIDE-WIDTH-1
|
||||
local radius : PERIODRADIUS * [Math.sqrt MosaicWidthScalar]
|
||||
sketch # whiteBullet
|
||||
set-width MosaicWidth
|
||||
local s : [adviceBlackness 5] * 0.75
|
||||
include : difference
|
||||
DotAt MosaicMiddle symbolMid (radius - O)
|
||||
DotAt MosaicMiddle symbolMid (radius - O - s)
|
||||
save [MangleName 'whiteBullet'] [MangleUnicode 0x25E6]
|
||||
|
||||
sketch # triangularBullet
|
||||
set-width MosaicWidth
|
||||
include : spiro-outline
|
||||
corner (MosaicMiddle + radius - O) symbolMid
|
||||
corner (MosaicMiddle - radius / 2) (symbolMid - radius / 2 * [Math.sqrt 3])
|
||||
corner (MosaicMiddle - radius / 2) (symbolMid + radius / 2 * [Math.sqrt 3])
|
||||
save [MangleName 'triangularBullet'] [MangleUnicode 0x2023]
|
||||
|
||||
|
||||
do 'Quotes and Primes'
|
||||
local quoteTop (CAP * 1.05)
|
||||
|
|
|
@ -7,6 +7,7 @@ import [compsiteMarkSet] from '../support/utils'
|
|||
# Parameter generation
|
||||
export : define [calculateMetrics para] : begin
|
||||
define UPM 1000
|
||||
define HALF-UPM : UPM / 2
|
||||
|
||||
# Key metrics
|
||||
define WIDTH para.width
|
||||
|
@ -176,7 +177,7 @@ export : define [calculateMetrics para] : begin
|
|||
return : 0.5 * HVCONTRAST * (stroke - fine) / stroke + dir * TANSLANT
|
||||
|
||||
return [object
|
||||
UPM WIDTH SB CAP XH DESCENDER CONTRAST
|
||||
UPM HALF-UPM WIDTH SB CAP XH DESCENDER CONTRAST
|
||||
symbolMid parenTop parenBot operTop operBot tackTop tackBot plusTop plusBot pictTop pictBot bgopTop bgopBot Italify Upright Scale Translate Rotate globalTransform
|
||||
TANSLANT SINSLANT COSSLANT HVCONTRAST UPWARD DOWNWARD RIGHTWARD LEFTWARD
|
||||
Upward Downward Leftward Rightward
|
||||
|
|
|
@ -178,7 +178,7 @@ define-macro for-width-kinds : syntax-rules
|
|||
{0 '.hwid' $Capture$.metrics.WIDTH $Capture$.metrics.WIDTH}
|
||||
{1 '.fwid' $Capture$.metrics.WIDE-WIDTH-0 ($Capture$.metrics.WIDE-WIDTH-0 / 2)}
|
||||
}
|
||||
foreach {FMosaifWide MosaicNameSuffix MosaicWidth MosaicUnitWidth} [items-of WidthKinds] : do
|
||||
foreach {FMosaicWide MosaicNameSuffix MosaicWidth MosaicUnitWidth} [items-of WidthKinds] : do
|
||||
define MosaicMiddle : MosaicWidth / 2
|
||||
define MosaicWidthScalar : MosaicWidth / MosaicUnitWidth
|
||||
define [MangleUnicode unicode] : if (MosaicWidth == @[formOf _desired]) unicode nothing
|
||||
|
@ -220,15 +220,15 @@ define-macro glyph-block : syntax-rules
|
|||
save-glyph spirofns MarkSet MARK BASE AS_BASE ALSO_METRICS pickHash dependencyProfile
|
||||
getDependencyProfile buildGlyphs newtemp tagged includeGlyphPart compsiteMarkSet
|
||||
DivFrame fontMetrics]
|
||||
define metricImports `[UPM WIDTH SB CAP XH DESCENDER CONTRAST symbolMid parenTop parenBot
|
||||
operTop operBot tackTop tackBot plusTop plusBot pictTop pictBot bgopTop bgopBot Italify
|
||||
Upright Scale Translate Rotate globalTransform TANSLANT SINSLANT COSSLANT HVCONTRAST
|
||||
UPWARD DOWNWARD RIGHTWARD LEFTWARD Upward Downward Leftward Rightward O OX OXHOOK HOOK
|
||||
AHOOK SHOOK RHOOK JHOOK FHOOK HOOKX SMOOTH SMALLSMOOTH STROKE DOTSIZE PERIODSIZE BARPOS
|
||||
GBARPOS EBARPOS OVERLAYPOS FIVEBARPOS LONGJUT JUT VJUT ACCENT ACCENTX CTHIN CTHINB SLAB
|
||||
TAILADJX TAILADJY LBALANCE IBALANCE LBALANCE2 IBALANCE2 JBALANCE JBALANCE2 TBALANCE
|
||||
TBALANCE2 RBALANCE RBALANCE2 FBALANCE ONEBALANCE WIDE-WIDTH-0 WIDE-WIDTH-1
|
||||
WIDE-WIDTH-2 OXE ESS ESSQUESTION XO CAPO HALFSTROKE RIGHTSB FWRSB MIDDLE
|
||||
define metricImports `[UPM HALF-UPM WIDTH SB CAP XH DESCENDER CONTRAST symbolMid parenTop
|
||||
parenBot operTop operBot tackTop tackBot plusTop plusBot pictTop pictBot bgopTop bgopBot
|
||||
Italify Upright Scale Translate Rotate globalTransform TANSLANT SINSLANT COSSLANT
|
||||
HVCONTRAST UPWARD DOWNWARD RIGHTWARD LEFTWARD Upward Downward Leftward Rightward O OX
|
||||
OXHOOK HOOK AHOOK SHOOK RHOOK JHOOK FHOOK HOOKX SMOOTH SMALLSMOOTH STROKE DOTSIZE
|
||||
PERIODSIZE BARPOS GBARPOS EBARPOS OVERLAYPOS FIVEBARPOS LONGJUT JUT VJUT ACCENT ACCENTX
|
||||
CTHIN CTHINB SLAB TAILADJX TAILADJY LBALANCE IBALANCE LBALANCE2 IBALANCE2 JBALANCE
|
||||
JBALANCE2 TBALANCE TBALANCE2 RBALANCE RBALANCE2 FBALANCE ONEBALANCE WIDE-WIDTH-0
|
||||
WIDE-WIDTH-1 WIDE-WIDTH-2 OXE ESS ESSQUESTION XO CAPO HALFSTROKE RIGHTSB FWRSB MIDDLE
|
||||
FWMIDDLE CAPMIDDLE CAP_SMOOTH DOTRADIUS PERIODRADIUS SIDEJUT SMOOTHA SMOOTHB
|
||||
SMALLSMOOTHA SMALLSMOOTHB CORRECTION_OMIDX CORRECTION_OMIDS adviceBlackness
|
||||
adviceBlackness2 MVERTSTROKE MVERTSTROKE_D OVERLAYSTROKE OPERATORSTROKE GEOMETRYSTROKE
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
"eslint-config-prettier": "^6.10.0",
|
||||
"patel": "^0.33.1",
|
||||
"semver": "^7.1.3",
|
||||
"stylus": "^0.54.7"
|
||||
"stylus": "^0.54.7",
|
||||
"unicode-13.0.0": "0.8.0"
|
||||
}
|
||||
}
|
||||
|
|
310
utility/export-data/coverage-export/block-data.js
Normal file
310
utility/export-data/coverage-export/block-data.js
Normal file
|
@ -0,0 +1,310 @@
|
|||
module.exports = [
|
||||
[[0x0000, 0x007f], "Basic Latin"],
|
||||
[[0x0080, 0x00ff], "Latin-1 Supplement"],
|
||||
[[0x0100, 0x017f], "Latin Extended-A"],
|
||||
[[0x0180, 0x024f], "Latin Extended-B"],
|
||||
[[0x0250, 0x02af], "IPA Extensions"],
|
||||
[[0x02b0, 0x02ff], "Spacing Modifier Letters"],
|
||||
[[0x0300, 0x036f], "Combining Diacritical Marks"],
|
||||
[[0x0370, 0x03ff], "Greek and Coptic"],
|
||||
[[0x0400, 0x04ff], "Cyrillic"],
|
||||
[[0x0500, 0x052f], "Cyrillic Supplement"],
|
||||
[[0x0530, 0x058f], "Armenian"],
|
||||
[[0x0590, 0x05ff], "Hebrew"],
|
||||
[[0x0600, 0x06ff], "Arabic"],
|
||||
[[0x0700, 0x074f], "Syriac"],
|
||||
[[0x0750, 0x077f], "Arabic Supplement"],
|
||||
[[0x0780, 0x07bf], "Thaana"],
|
||||
[[0x07c0, 0x07ff], "NKo"],
|
||||
[[0x0800, 0x083f], "Samaritan"],
|
||||
[[0x0840, 0x085f], "Mandaic"],
|
||||
[[0x0860, 0x086f], "Syriac Supplement"],
|
||||
[[0x08a0, 0x08ff], "Arabic Extended-A"],
|
||||
[[0x0900, 0x097f], "Devanagari"],
|
||||
[[0x0980, 0x09ff], "Bengali"],
|
||||
[[0x0a00, 0x0a7f], "Gurmukhi"],
|
||||
[[0x0a80, 0x0aff], "Gujarati"],
|
||||
[[0x0b00, 0x0b7f], "Oriya"],
|
||||
[[0x0b80, 0x0bff], "Tamil"],
|
||||
[[0x0c00, 0x0c7f], "Telugu"],
|
||||
[[0x0c80, 0x0cff], "Kannada"],
|
||||
[[0x0d00, 0x0d7f], "Malayalam"],
|
||||
[[0x0d80, 0x0dff], "Sinhala"],
|
||||
[[0x0e00, 0x0e7f], "Thai"],
|
||||
[[0x0e80, 0x0eff], "Lao"],
|
||||
[[0x0f00, 0x0fff], "Tibetan"],
|
||||
[[0x1000, 0x109f], "Myanmar"],
|
||||
[[0x10a0, 0x10ff], "Georgian"],
|
||||
[[0x1100, 0x11ff], "Hangul Jamo"],
|
||||
[[0x1200, 0x137f], "Ethiopic"],
|
||||
[[0x1380, 0x139f], "Ethiopic Supplement"],
|
||||
[[0x13a0, 0x13ff], "Cherokee"],
|
||||
[[0x1400, 0x167f], "Unified Canadian Aboriginal Syllabics"],
|
||||
[[0x1680, 0x169f], "Ogham"],
|
||||
[[0x16a0, 0x16ff], "Runic"],
|
||||
[[0x1700, 0x171f], "Tagalog"],
|
||||
[[0x1720, 0x173f], "Hanunoo"],
|
||||
[[0x1740, 0x175f], "Buhid"],
|
||||
[[0x1760, 0x177f], "Tagbanwa"],
|
||||
[[0x1780, 0x17ff], "Khmer"],
|
||||
[[0x1800, 0x18af], "Mongolian"],
|
||||
[[0x18b0, 0x18ff], "Unified Canadian Aboriginal Syllabics Extended"],
|
||||
[[0x1900, 0x194f], "Limbu"],
|
||||
[[0x1950, 0x197f], "Tai Le"],
|
||||
[[0x1980, 0x19df], "New Tai Lue"],
|
||||
[[0x19e0, 0x19ff], "Khmer Symbols"],
|
||||
[[0x1a00, 0x1a1f], "Buginese"],
|
||||
[[0x1a20, 0x1aaf], "Tai Tham"],
|
||||
[[0x1ab0, 0x1aff], "Combining Diacritical Marks Extended"],
|
||||
[[0x1b00, 0x1b7f], "Balinese"],
|
||||
[[0x1b80, 0x1bbf], "Sundanese"],
|
||||
[[0x1bc0, 0x1bff], "Batak"],
|
||||
[[0x1c00, 0x1c4f], "Lepcha"],
|
||||
[[0x1c50, 0x1c7f], "Ol Chiki"],
|
||||
[[0x1c80, 0x1c8f], "Cyrillic Extended-C"],
|
||||
[[0x1c90, 0x1cbf], "Georgian Extended"],
|
||||
[[0x1cc0, 0x1ccf], "Sundanese Supplement"],
|
||||
[[0x1cd0, 0x1cff], "Vedic Extensions"],
|
||||
[[0x1d00, 0x1d7f], "Phonetic Extensions"],
|
||||
[[0x1d80, 0x1dbf], "Phonetic Extensions Supplement"],
|
||||
[[0x1dc0, 0x1dff], "Combining Diacritical Marks Supplement"],
|
||||
[[0x1e00, 0x1eff], "Latin Extended Additional"],
|
||||
[[0x1f00, 0x1fff], "Greek Extended"],
|
||||
[[0x2000, 0x206f], "General Punctuation"],
|
||||
[[0x2070, 0x209f], "Superscripts and Subscripts"],
|
||||
[[0x20a0, 0x20cf], "Currency Symbols"],
|
||||
[[0x20d0, 0x20ff], "Combining Diacritical Marks for Symbols"],
|
||||
[[0x2100, 0x214f], "Letterlike Symbols"],
|
||||
[[0x2150, 0x218f], "Number Forms"],
|
||||
[[0x2190, 0x21ff], "Arrows"],
|
||||
[[0x2200, 0x22ff], "Mathematical Operators"],
|
||||
[[0x2300, 0x23ff], "Miscellaneous Technical"],
|
||||
[[0x2400, 0x243f], "Control Pictures"],
|
||||
[[0x2440, 0x245f], "Optical Character Recognition"],
|
||||
[[0x2460, 0x24ff], "Enclosed Alphanumerics"],
|
||||
[[0x2500, 0x257f], "Box Drawing"],
|
||||
[[0x2580, 0x259f], "Block Elements"],
|
||||
[[0x25a0, 0x25ff], "Geometric Shapes"],
|
||||
[[0x2600, 0x26ff], "Miscellaneous Symbols"],
|
||||
[[0x2700, 0x27bf], "Dingbats"],
|
||||
[[0x27c0, 0x27ef], "Miscellaneous Mathematical Symbols-A"],
|
||||
[[0x27f0, 0x27ff], "Supplemental Arrows-A"],
|
||||
[[0x2800, 0x28ff], "Braille Patterns"],
|
||||
[[0x2900, 0x297f], "Supplemental Arrows-B"],
|
||||
[[0x2980, 0x29ff], "Miscellaneous Mathematical Symbols-B"],
|
||||
[[0x2a00, 0x2aff], "Supplemental Mathematical Operators"],
|
||||
[[0x2b00, 0x2bff], "Miscellaneous Symbols and Arrows"],
|
||||
[[0x2c00, 0x2c5f], "Glagolitic"],
|
||||
[[0x2c60, 0x2c7f], "Latin Extended-C"],
|
||||
[[0x2c80, 0x2cff], "Coptic"],
|
||||
[[0x2d00, 0x2d2f], "Georgian Supplement"],
|
||||
[[0x2d30, 0x2d7f], "Tifinagh"],
|
||||
[[0x2d80, 0x2ddf], "Ethiopic Extended"],
|
||||
[[0x2de0, 0x2dff], "Cyrillic Extended-A"],
|
||||
[[0x2e00, 0x2e7f], "Supplemental Punctuation"],
|
||||
[[0x2e80, 0x2eff], "CJK Radicals Supplement"],
|
||||
[[0x2f00, 0x2fdf], "Kangxi Radicals"],
|
||||
[[0x2ff0, 0x2fff], "Ideographic Description Characters"],
|
||||
[[0x3000, 0x303f], "CJK Symbols and Punctuation"],
|
||||
[[0x3040, 0x309f], "Hiragana"],
|
||||
[[0x30a0, 0x30ff], "Katakana"],
|
||||
[[0x3100, 0x312f], "Bopomofo"],
|
||||
[[0x3130, 0x318f], "Hangul Compatibility Jamo"],
|
||||
[[0x3190, 0x319f], "Kanbun"],
|
||||
[[0x31a0, 0x31bf], "Bopomofo Extended"],
|
||||
[[0x31c0, 0x31ef], "CJK Strokes"],
|
||||
[[0x31f0, 0x31ff], "Katakana Phonetic Extensions"],
|
||||
[[0x3200, 0x32ff], "Enclosed CJK Letters and Months"],
|
||||
[[0x3300, 0x33ff], "CJK Compatibility"],
|
||||
[[0x3400, 0x4dbf], "CJK Unified Ideographs Extension A"],
|
||||
[[0x4dc0, 0x4dff], "Yijing Hexagram Symbols"],
|
||||
[[0x4e00, 0x9fff], "CJK Unified Ideographs"],
|
||||
[[0xa000, 0xa48f], "Yi Syllables"],
|
||||
[[0xa490, 0xa4cf], "Yi Radicals"],
|
||||
[[0xa4d0, 0xa4ff], "Lisu"],
|
||||
[[0xa500, 0xa63f], "Vai"],
|
||||
[[0xa640, 0xa69f], "Cyrillic Extended-B"],
|
||||
[[0xa6a0, 0xa6ff], "Bamum"],
|
||||
[[0xa700, 0xa71f], "Modifier Tone Letters"],
|
||||
[[0xa720, 0xa7ff], "Latin Extended-D"],
|
||||
[[0xa800, 0xa82f], "Syloti Nagri"],
|
||||
[[0xa830, 0xa83f], "Common Indic Number Forms"],
|
||||
[[0xa840, 0xa87f], "Phags-pa"],
|
||||
[[0xa880, 0xa8df], "Saurashtra"],
|
||||
[[0xa8e0, 0xa8ff], "Devanagari Extended"],
|
||||
[[0xa900, 0xa92f], "Kayah Li"],
|
||||
[[0xa930, 0xa95f], "Rejang"],
|
||||
[[0xa960, 0xa97f], "Hangul Jamo Extended-A"],
|
||||
[[0xa980, 0xa9df], "Javanese"],
|
||||
[[0xa9e0, 0xa9ff], "Myanmar Extended-B"],
|
||||
[[0xaa00, 0xaa5f], "Cham"],
|
||||
[[0xaa60, 0xaa7f], "Myanmar Extended-A"],
|
||||
[[0xaa80, 0xaadf], "Tai Viet"],
|
||||
[[0xaae0, 0xaaff], "Meetei Mayek Extensions"],
|
||||
[[0xab00, 0xab2f], "Ethiopic Extended-A"],
|
||||
[[0xab30, 0xab6f], "Latin Extended-E"],
|
||||
[[0xab70, 0xabbf], "Cherokee Supplement"],
|
||||
[[0xabc0, 0xabff], "Meetei Mayek"],
|
||||
[[0xac00, 0xd7af], "Hangul Syllables"],
|
||||
[[0xd7b0, 0xd7ff], "Hangul Jamo Extended-B"],
|
||||
[[0xd800, 0xdb7f], "High Surrogates"],
|
||||
[[0xdb80, 0xdbff], "High Private Use Surrogates"],
|
||||
[[0xdc00, 0xdfff], "Low Surrogates"],
|
||||
[[0xe000, 0xf8ff], "Private Use Area"],
|
||||
[[0xf900, 0xfaff], "CJK Compatibility Ideographs"],
|
||||
[[0xfb00, 0xfb4f], "Alphabetic Presentation Forms"],
|
||||
[[0xfb50, 0xfdff], "Arabic Presentation Forms-A"],
|
||||
[[0xfe00, 0xfe0f], "Variation Selectors"],
|
||||
[[0xfe10, 0xfe1f], "Vertical Forms"],
|
||||
[[0xfe20, 0xfe2f], "Combining Half Marks"],
|
||||
[[0xfe30, 0xfe4f], "CJK Compatibility Forms"],
|
||||
[[0xfe50, 0xfe6f], "Small Form Variants"],
|
||||
[[0xfe70, 0xfeff], "Arabic Presentation Forms-B"],
|
||||
[[0xff00, 0xffef], "Halfwidth and Fullwidth Forms"],
|
||||
[[0xfff0, 0xffff], "Specials"],
|
||||
[[0x10000, 0x1007f], "Linear B Syllabary"],
|
||||
[[0x10080, 0x100ff], "Linear B Ideograms"],
|
||||
[[0x10100, 0x1013f], "Aegean Numbers"],
|
||||
[[0x10140, 0x1018f], "Ancient Greek Numbers"],
|
||||
[[0x10190, 0x101cf], "Ancient Symbols"],
|
||||
[[0x101d0, 0x101ff], "Phaistos Disc"],
|
||||
[[0x10280, 0x1029f], "Lycian"],
|
||||
[[0x102a0, 0x102df], "Carian"],
|
||||
[[0x102e0, 0x102ff], "Coptic Epact Numbers"],
|
||||
[[0x10300, 0x1032f], "Old Italic"],
|
||||
[[0x10330, 0x1034f], "Gothic"],
|
||||
[[0x10350, 0x1037f], "Old Permic"],
|
||||
[[0x10380, 0x1039f], "Ugaritic"],
|
||||
[[0x103a0, 0x103df], "Old Persian"],
|
||||
[[0x10400, 0x1044f], "Deseret"],
|
||||
[[0x10450, 0x1047f], "Shavian"],
|
||||
[[0x10480, 0x104af], "Osmanya"],
|
||||
[[0x104b0, 0x104ff], "Osage"],
|
||||
[[0x10500, 0x1052f], "Elbasan"],
|
||||
[[0x10530, 0x1056f], "Caucasian Albanian"],
|
||||
[[0x10600, 0x1077f], "Linear A"],
|
||||
[[0x10800, 0x1083f], "Cypriot Syllabary"],
|
||||
[[0x10840, 0x1085f], "Imperial Aramaic"],
|
||||
[[0x10860, 0x1087f], "Palmyrene"],
|
||||
[[0x10880, 0x108af], "Nabataean"],
|
||||
[[0x108e0, 0x108ff], "Hatran"],
|
||||
[[0x10900, 0x1091f], "Phoenician"],
|
||||
[[0x10920, 0x1093f], "Lydian"],
|
||||
[[0x10980, 0x1099f], "Meroitic Hieroglyphs"],
|
||||
[[0x109a0, 0x109ff], "Meroitic Cursive"],
|
||||
[[0x10a00, 0x10a5f], "Kharoshthi"],
|
||||
[[0x10a60, 0x10a7f], "Old South Arabian"],
|
||||
[[0x10a80, 0x10a9f], "Old North Arabian"],
|
||||
[[0x10ac0, 0x10aff], "Manichaean"],
|
||||
[[0x10b00, 0x10b3f], "Avestan"],
|
||||
[[0x10b40, 0x10b5f], "Inscriptional Parthian"],
|
||||
[[0x10b60, 0x10b7f], "Inscriptional Pahlavi"],
|
||||
[[0x10b80, 0x10baf], "Psalter Pahlavi"],
|
||||
[[0x10c00, 0x10c4f], "Old Turkic"],
|
||||
[[0x10c80, 0x10cff], "Old Hungarian"],
|
||||
[[0x10d00, 0x10d3f], "Hanifi Rohingya"],
|
||||
[[0x10e60, 0x10e7f], "Rumi Numeral Symbols"],
|
||||
[[0x10e80, 0x10ebf], "Yezidi"],
|
||||
[[0x10f00, 0x10f2f], "Old Sogdian"],
|
||||
[[0x10f30, 0x10f6f], "Sogdian"],
|
||||
[[0x10fb0, 0x10fdf], "Chorasmian"],
|
||||
[[0x10fe0, 0x10fff], "Elymaic"],
|
||||
[[0x11000, 0x1107f], "Brahmi"],
|
||||
[[0x11080, 0x110cf], "Kaithi"],
|
||||
[[0x110d0, 0x110ff], "Sora Sompeng"],
|
||||
[[0x11100, 0x1114f], "Chakma"],
|
||||
[[0x11150, 0x1117f], "Mahajani"],
|
||||
[[0x11180, 0x111df], "Sharada"],
|
||||
[[0x111e0, 0x111ff], "Sinhala Archaic Numbers"],
|
||||
[[0x11200, 0x1124f], "Khojki"],
|
||||
[[0x11280, 0x112af], "Multani"],
|
||||
[[0x112b0, 0x112ff], "Khudawadi"],
|
||||
[[0x11300, 0x1137f], "Grantha"],
|
||||
[[0x11400, 0x1147f], "Newa"],
|
||||
[[0x11480, 0x114df], "Tirhuta"],
|
||||
[[0x11580, 0x115ff], "Siddham"],
|
||||
[[0x11600, 0x1165f], "Modi"],
|
||||
[[0x11660, 0x1167f], "Mongolian Supplement"],
|
||||
[[0x11680, 0x116cf], "Takri"],
|
||||
[[0x11700, 0x1173f], "Ahom"],
|
||||
[[0x11800, 0x1184f], "Dogra"],
|
||||
[[0x118a0, 0x118ff], "Warang Citi"],
|
||||
[[0x11900, 0x1195f], "Dives Akuru"],
|
||||
[[0x119a0, 0x119ff], "Nandinagari"],
|
||||
[[0x11a00, 0x11a4f], "Zanabazar Square"],
|
||||
[[0x11a50, 0x11aaf], "Soyombo"],
|
||||
[[0x11ac0, 0x11aff], "Pau Cin Hau"],
|
||||
[[0x11c00, 0x11c6f], "Bhaiksuki"],
|
||||
[[0x11c70, 0x11cbf], "Marchen"],
|
||||
[[0x11d00, 0x11d5f], "Masaram Gondi"],
|
||||
[[0x11d60, 0x11daf], "Gunjala Gondi"],
|
||||
[[0x11ee0, 0x11eff], "Makasar"],
|
||||
[[0x11fb0, 0x11fbf], "Lisu Supplement"],
|
||||
[[0x11fc0, 0x11fff], "Tamil Supplement"],
|
||||
[[0x12000, 0x123ff], "Cuneiform"],
|
||||
[[0x12400, 0x1247f], "Cuneiform Numbers and Punctuation"],
|
||||
[[0x12480, 0x1254f], "Early Dynastic Cuneiform"],
|
||||
[[0x13000, 0x1342f], "Egyptian Hieroglyphs"],
|
||||
[[0x13430, 0x1343f], "Egyptian Hieroglyph Format Controls"],
|
||||
[[0x14400, 0x1467f], "Anatolian Hieroglyphs"],
|
||||
[[0x16800, 0x16a3f], "Bamum Supplement"],
|
||||
[[0x16a40, 0x16a6f], "Mro"],
|
||||
[[0x16ad0, 0x16aff], "Bassa Vah"],
|
||||
[[0x16b00, 0x16b8f], "Pahawh Hmong"],
|
||||
[[0x16e40, 0x16e9f], "Medefaidrin"],
|
||||
[[0x16f00, 0x16f9f], "Miao"],
|
||||
[[0x16fe0, 0x16fff], "Ideographic Symbols and Punctuation"],
|
||||
[[0x17000, 0x187ff], "Tangut"],
|
||||
[[0x18800, 0x18aff], "Tangut Components"],
|
||||
[[0x18b00, 0x18cff], "Khitan Small Script"],
|
||||
[[0x18d00, 0x18d8f], "Tangut Supplement"],
|
||||
[[0x1b000, 0x1b0ff], "Kana Supplement"],
|
||||
[[0x1b100, 0x1b12f], "Kana Extended-A"],
|
||||
[[0x1b130, 0x1b16f], "Small Kana Extension"],
|
||||
[[0x1b170, 0x1b2ff], "Nushu"],
|
||||
[[0x1bc00, 0x1bc9f], "Duployan"],
|
||||
[[0x1bca0, 0x1bcaf], "Shorthand Format Controls"],
|
||||
[[0x1d000, 0x1d0ff], "Byzantine Musical Symbols"],
|
||||
[[0x1d100, 0x1d1ff], "Musical Symbols"],
|
||||
[[0x1d200, 0x1d24f], "Ancient Greek Musical Notation"],
|
||||
[[0x1d2e0, 0x1d2ff], "Mayan Numerals"],
|
||||
[[0x1d300, 0x1d35f], "Tai Xuan Jing Symbols"],
|
||||
[[0x1d360, 0x1d37f], "Counting Rod Numerals"],
|
||||
[[0x1d400, 0x1d7ff], "Mathematical Alphanumeric Symbols"],
|
||||
[[0x1d800, 0x1daaf], "Sutton SignWriting"],
|
||||
[[0x1e000, 0x1e02f], "Glagolitic Supplement"],
|
||||
[[0x1e100, 0x1e14f], "Nyiakeng Puachue Hmong"],
|
||||
[[0x1e2c0, 0x1e2ff], "Wancho"],
|
||||
[[0x1e800, 0x1e8df], "Mende Kikakui"],
|
||||
[[0x1e900, 0x1e95f], "Adlam"],
|
||||
[[0x1ec70, 0x1ecbf], "Indic Siyaq Numbers"],
|
||||
[[0x1ed00, 0x1ed4f], "Ottoman Siyaq Numbers"],
|
||||
[[0x1ee00, 0x1eeff], "Arabic Mathematical Alphabetic Symbols"],
|
||||
[[0x1f000, 0x1f02f], "Mahjong Tiles"],
|
||||
[[0x1f030, 0x1f09f], "Domino Tiles"],
|
||||
[[0x1f0a0, 0x1f0ff], "Playing Cards"],
|
||||
[[0x1f100, 0x1f1ff], "Enclosed Alphanumeric Supplement"],
|
||||
[[0x1f200, 0x1f2ff], "Enclosed Ideographic Supplement"],
|
||||
[[0x1f300, 0x1f5ff], "Miscellaneous Symbols and Pictographs"],
|
||||
[[0x1f600, 0x1f64f], "Emoticons"],
|
||||
[[0x1f650, 0x1f67f], "Ornamental Dingbats"],
|
||||
[[0x1f680, 0x1f6ff], "Transport and Map Symbols"],
|
||||
[[0x1f700, 0x1f77f], "Alchemical Symbols"],
|
||||
[[0x1f780, 0x1f7ff], "Geometric Shapes Extended"],
|
||||
[[0x1f800, 0x1f8ff], "Supplemental Arrows-C"],
|
||||
[[0x1f900, 0x1f9ff], "Supplemental Symbols and Pictographs"],
|
||||
[[0x1fa00, 0x1fa6f], "Chess Symbols"],
|
||||
[[0x1fa70, 0x1faff], "Symbols and Pictographs Extended-A"],
|
||||
[[0x1fb00, 0x1fbff], "Symbols for Legacy Computing"],
|
||||
[[0x20000, 0x2a6df], "CJK Unified Ideographs Extension B"],
|
||||
[[0x2a700, 0x2b73f], "CJK Unified Ideographs Extension C"],
|
||||
[[0x2b740, 0x2b81f], "CJK Unified Ideographs Extension D"],
|
||||
[[0x2b820, 0x2ceaf], "CJK Unified Ideographs Extension E"],
|
||||
[[0x2ceb0, 0x2ebef], "CJK Unified Ideographs Extension F"],
|
||||
[[0x2f800, 0x2fa1f], "CJK Compatibility Ideographs Supplement"],
|
||||
[[0x30000, 0x3134f], "CJK Unified Ideographs Extension G"],
|
||||
[[0xe0000, 0xe007f], "Tags"],
|
||||
[[0xe0100, 0xe01ef], "Variation Selectors Supplement"],
|
||||
[[0xf0000, 0xfffff], "Supplementary Private Use Area-A"],
|
||||
[[0x100000, 0x10ffff], "Supplementary Private Use Area-B"]
|
||||
];
|
39
utility/export-data/coverage-export/gather-coverage-data.js
Normal file
39
utility/export-data/coverage-export/gather-coverage-data.js
Normal file
|
@ -0,0 +1,39 @@
|
|||
const blockData = require("./block-data");
|
||||
const ucdNames = require("unicode-13.0.0/Names");
|
||||
const ugc = require("unicode-13.0.0/General_Category");
|
||||
|
||||
module.exports = function(rawCov) {
|
||||
const result = [];
|
||||
const inFontCharSet = new Set(rawCov.keys());
|
||||
for (const [[lchBlockStart, lchBlockEnd], block] of blockData) {
|
||||
let blockResults = [];
|
||||
let processed = new Set();
|
||||
|
||||
for (const [lchFont, [gn, ck]] of rawCov) {
|
||||
if (lchFont < 0x20 || lchFont < lchBlockStart || lchFont > lchBlockEnd) continue;
|
||||
const lchStart = (lchFont >>> 4) << 4;
|
||||
const lchEnd = lchStart + 0x10;
|
||||
for (let lch = lchStart; lch < lchEnd; lch++) {
|
||||
if (processed.has(lch)) continue;
|
||||
const chName = ucdNames.get(lch);
|
||||
const gc = ugc.get(lch);
|
||||
blockResults.push({
|
||||
lch,
|
||||
charName: chName,
|
||||
glyphName: inFontCharSet.has(lch) ? gn : undefined,
|
||||
gc,
|
||||
ck,
|
||||
inFont: inFontCharSet.has(lch)
|
||||
});
|
||||
processed.add(lch);
|
||||
}
|
||||
}
|
||||
if (blockResults.length) {
|
||||
result.push({
|
||||
name: block,
|
||||
characters: blockResults.sort((a, b) => a.lch - b.lch)
|
||||
});
|
||||
}
|
||||
}
|
||||
return result;
|
||||
};
|
|
@ -1,6 +1,6 @@
|
|||
const cldr = require("cldr");
|
||||
const fs = require("fs-extra");
|
||||
const path = require("path");
|
||||
const gatherCov = require("./coverage-export/gather-coverage-data");
|
||||
|
||||
module.exports = async function(charMapPath) {
|
||||
const charMap = await fs.readJson(charMapPath);
|
||||
|
@ -57,15 +57,15 @@ module.exports = async function(charMapPath) {
|
|||
if (displayName) supportLangSet.add(displayName);
|
||||
}
|
||||
|
||||
const unicodeCoverage = new Map();
|
||||
for (const [gn, codes, cl] of charMap) for (const u of codes) unicodeCoverage.set(u, cl);
|
||||
const rawCoverage = new Map();
|
||||
for (const [gn, codes, cl] of charMap) for (const u of codes) rawCoverage.set(u, [gn, cl]);
|
||||
|
||||
return {
|
||||
stats: {
|
||||
glyphCount: charMap.length,
|
||||
codePointCount: unicodeCoverage.size
|
||||
codePointCount: rawCoverage.size
|
||||
},
|
||||
unicodeCoverage: Array.from(unicodeCoverage).sort((a, b) => a[0] - b[0]),
|
||||
unicodeCoverage: gatherCov(rawCoverage),
|
||||
languages: Array.from(supportLangSet).sort()
|
||||
};
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue