Merge branch 'prerelease'
This commit is contained in:
commit
2cfa0955b5
40 changed files with 5217 additions and 4786 deletions
6
.gitattributes
vendored
6
.gitattributes
vendored
|
@ -1 +1,5 @@
|
|||
*.ptl linguist-language=PatEL
|
||||
# Use LF line endings; do not normlize to CRLF
|
||||
* text eol=lf
|
||||
|
||||
# Recognize PatEL files for GitHub language stats
|
||||
*.ptl linguist-language=PatEL
|
||||
|
|
67
.github/workflows/pages-deploy.yml
vendored
Normal file
67
.github/workflows/pages-deploy.yml
vendored
Normal file
|
@ -0,0 +1,67 @@
|
|||
name: Deploy Pages
|
||||
|
||||
on:
|
||||
# Runs on pushes targeting the default branch
|
||||
push:
|
||||
branches: [pages-source]
|
||||
|
||||
# Allows you to run this workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
|
||||
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
||||
permissions:
|
||||
contents: read
|
||||
pages: write
|
||||
id-token: write
|
||||
|
||||
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
||||
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
||||
concurrency:
|
||||
group: "pages"
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
# Build job
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: 'pages-source'
|
||||
|
||||
- name: Use Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: lts/*
|
||||
|
||||
- name: Setup Pages
|
||||
uses: actions/configure-pages@v4
|
||||
with:
|
||||
# Automatically inject basePath in your Next.js configuration file and disable
|
||||
# server side image optimization (https://nextjs.org/docs/api-reference/next/image#unoptimized).
|
||||
#
|
||||
# You may remove this line if you want to manage the configuration yourself.
|
||||
static_site_generator: next
|
||||
|
||||
- name: Build with Next.js
|
||||
run: |
|
||||
npm install
|
||||
npm run build
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-pages-artifact@v3
|
||||
with:
|
||||
path: ./out
|
||||
|
||||
# Deployment job
|
||||
deploy:
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
steps:
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v4
|
|
@ -709,6 +709,7 @@ cyrl-u = "straight-serifless"
|
|||
cyrl-ef = "serifless"
|
||||
cyrl-yeri = "corner"
|
||||
cyrl-yery = "corner"
|
||||
four = "closed-serifless"
|
||||
at = "fourfold"
|
||||
percent = "rings-continuous-slash"
|
||||
micro-sign = "toothed-serifless"
|
||||
|
@ -742,6 +743,7 @@ cyrl-u = "straight-serifless"
|
|||
cyrl-ef = "serifless"
|
||||
cyrl-yeri = "corner"
|
||||
cyrl-yery = "corner"
|
||||
four = "closed-serifless"
|
||||
at = "fourfold"
|
||||
percent = "rings-continuous-slash"
|
||||
micro-sign = "toothed-serifless"
|
||||
|
@ -776,6 +778,7 @@ eszet = "longs-s-lig-bottom-serifed"
|
|||
lower-iota = "serifed-flat-tailed"
|
||||
lower-tau = "short-tailed"
|
||||
cyrl-em = "flat-bottom-serifed"
|
||||
four = "closed-serifed"
|
||||
at = "fourfold"
|
||||
percent = "rings-continuous-slash"
|
||||
|
||||
|
|
16
changes/29.0.2.md
Normal file
16
changes/29.0.2.md
Normal file
|
@ -0,0 +1,16 @@
|
|||
* Add characters:
|
||||
- SYMBOL FOR DELETE SQUARE CHECKER BOARD FORM (`U+2427`) (Proposed for Unicode 16; L2/21-235).
|
||||
- SYMBOL FOR DELETE RECTANGULAR CHECKER BOARD FORM (`U+2428`) (Proposed for Unicode 16; L2/21-235).
|
||||
- LEFT-POINTING STICK FIGURE (`U+1CC02`) (Proposed for Unicode 16; L2/21-235).
|
||||
- RIGHT-POINTING STICK FIGURE (`U+1CC03`) (Proposed for Unicode 16; L2/21-235).
|
||||
- DOWN-POINTING STICK FIGURE (`U+1CC04`) (Proposed for Unicode 16; L2/21-235).
|
||||
- UPPER LEFT TWELFTH CIRCLE (`U+1CC30`) ... DENSE HORIZONTAL FILL (`U+1CC45`) (Proposed for Unicode 16; L2/21-235).
|
||||
- SQUARE SPIRAL FROM TOP LEFT (`U+1CC7C`) ... HORIZONTAL LADDER (`U+1CC85`) (Proposed for Unicode 16; L2/21-235).
|
||||
- RIGHT HALF AND LEFT HALF WHITE CIRCLE (`U+1CE00`) (Proposed for Unicode 16; L2/21-235).
|
||||
- LOWER HALF AND UPPER HALF WHITE CIRCLE (`U+1CE01`) (Proposed for Unicode 16; L2/21-235).
|
||||
- UPPER HALF HEAVY WHITE SQUARE (`U+1CE03`) (Proposed for Unicode 16; L2/21-235).
|
||||
- LOWER HALF HEAVY WHITE SQUARE (`U+1CE04`) (Proposed for Unicode 16; L2/21-235).
|
||||
- HEAVY WHITE SQUARE CONTAINING BLACK VERY SMALL SQUARE (`U+1CE05`) (Proposed for Unicode 16; L2/21-235).
|
||||
- TOP JUSTIFIED LOWER HALF WHITE CIRCLE (`U+1FBE0`) ... LEFT JUSTIFIED RIGHT HALF WHITE CIRCLE (`U+1FBE3`) (Proposed for Unicode 16; L2/21-235).
|
||||
- TOP JUSTIFIED LOWER HALF BLACK CIRCLE (`U+1FBE8`) ... TOP LEFT JUSTIFIED LOWER RIGHT QUARTER BLACK CIRCLE (`U+1FBEF`) (Proposed for Unicode 16; L2/21-235).
|
||||
* Quasi-proportional will now use `four` = `closed-serifless` and `four` = `closed-serifed` for Aile and Etoile respectively.
|
|
@ -1,452 +0,0 @@
|
|||
a461906896893bf027870ead7c0d1e12feb128aa9392d989f18de71dabb350d9 PkgTTC-Iosevka-29.0.1.zip
|
||||
e105f00bfebac9bb79003a7468413bfae46238ab80737091fdce0f246b5c61ee PkgTTC-IosevkaAile-29.0.1.zip
|
||||
2f0129a0e5979e10899c5c957c82bebcc3159aaa491e42c19582eefdb551e98f PkgTTC-IosevkaCurly-29.0.1.zip
|
||||
304e1f281ce265d1ed8376f05b6d1a9d0bf821fc43ab54766f730975c230f5fc PkgTTC-IosevkaCurlySlab-29.0.1.zip
|
||||
b434310b5a99ee7869b84d50fcb00be01876c5a232d8a7cc1dd0b57af75e467e PkgTTC-IosevkaEtoile-29.0.1.zip
|
||||
8a152195e45f4c21fb1a4717604c7e95b5f3a789eff77c7c6a90a4f3c796b653 PkgTTC-IosevkaSS01-29.0.1.zip
|
||||
6c42eb9c9ce212de12fe3d0aceae9f6449324dc7795c585c6c99c8fa0be7b02b PkgTTC-IosevkaSS02-29.0.1.zip
|
||||
522472e3010f1dee7510b7a3371d73a0f0d8eabc01171e84619fe603bc6d5545 PkgTTC-IosevkaSS03-29.0.1.zip
|
||||
af8322f47887b50100d3ab44e872a4637880d676c1be08c67d2a49dd1656bc7f PkgTTC-IosevkaSS04-29.0.1.zip
|
||||
f38db30d5c0223a3621b9a056431bcda7e5da519ad6de3e14155d98db70540c7 PkgTTC-IosevkaSS05-29.0.1.zip
|
||||
a27321c4b00da8ea5bff9679f13a6e2e1e685f72d225c5bf92b0a237bff3ee1c PkgTTC-IosevkaSS06-29.0.1.zip
|
||||
bd0ad1db5ac755cae4e3489f12fd61fde9dcdf4fe22c02ce848010ac027f2da6 PkgTTC-IosevkaSS07-29.0.1.zip
|
||||
fb4a83e1ec1c6cf87f8ba4f8c00b94f0bbf1f2095b0dd585242c2b72256d5264 PkgTTC-IosevkaSS08-29.0.1.zip
|
||||
f33f706d1f0275db4ac42a04b7ba50d097c9dc0935ed03196cf65c14b7062537 PkgTTC-IosevkaSS09-29.0.1.zip
|
||||
f860511f9bfe32c5879aa04368df9038ccaa2a98fc11baaaf69f7ee0bd6dff9d PkgTTC-IosevkaSS10-29.0.1.zip
|
||||
3a713c7f7e63a30212dc1a38a665a9bd926f1fadd7a6c62b387688a4827d7ab2 PkgTTC-IosevkaSS11-29.0.1.zip
|
||||
5e1723f4a141891c723a23748384b873d368a0af3988076e494639ba4736b285 PkgTTC-IosevkaSS12-29.0.1.zip
|
||||
3035731f1feca6ab7c408968008152d4c79f3d3e579bc877d7077ed4a3ba9372 PkgTTC-IosevkaSS13-29.0.1.zip
|
||||
a03ad89c506173490552daf841dd66657e6ff354c08cf3f93f8f5028cc29dcfe PkgTTC-IosevkaSS14-29.0.1.zip
|
||||
97c3aba1efb43dcba7af1b9de643abb6817053464dc05a8e8e6595f80f635927 PkgTTC-IosevkaSS15-29.0.1.zip
|
||||
a6193c6de2b75cd65b32a25b7c9de5603386815fee0f2449034f34ba2726b8ca PkgTTC-IosevkaSS16-29.0.1.zip
|
||||
085d1763dcb8a2f9109f268f85414ee7a11f8e031d5f78d066fe42ed90ec327b PkgTTC-IosevkaSS17-29.0.1.zip
|
||||
94f961dc29d2a7f344b1fd4d711121d3d3ca5b28caffb2ab8811f6979fbba25b PkgTTC-IosevkaSS18-29.0.1.zip
|
||||
f738478905c1a7ede5627632cc46c7fa2a19efd2d4f89f20d52f0f3598437bb3 PkgTTC-IosevkaSlab-29.0.1.zip
|
||||
dcf924380e0994d296beb0749bf32dd4482ccf47edcb03b19bf9a0352dd7f765 PkgTTC-SGr-Iosevka-29.0.1.zip
|
||||
5bc4b38215d1435e9c25f59807fc241d179c5f8725cf2f484934168ff7f0b640 PkgTTC-SGr-IosevkaCurly-29.0.1.zip
|
||||
58765e135fadf6663a9495c4d8c650f66ca5c0e98793ca9bfafd3aee11a53b9d PkgTTC-SGr-IosevkaCurlySlab-29.0.1.zip
|
||||
0902b7ad8a3561d95c0a65f88dbe0112e48aacde23cfc75b7b6dc3a22c627d5f PkgTTC-SGr-IosevkaFixed-29.0.1.zip
|
||||
aa45a4e89ecceb6a3d07efc69812f815699d46fa66c456bb0bfc27bcf457a878 PkgTTC-SGr-IosevkaFixedCurly-29.0.1.zip
|
||||
8fe336e109ac147cb3be51b380aadc005a468b08e7c74cb17ecfa17b4d2270d6 PkgTTC-SGr-IosevkaFixedCurlySlab-29.0.1.zip
|
||||
fc2fffe11f4cb5eaea8d0f0a409c1ce52a8a46dce8e65ecb26d7661d56fc79f7 PkgTTC-SGr-IosevkaFixedSS01-29.0.1.zip
|
||||
32c627f0d5d3455ec4dda1411eedd61d33928c256e92a24da8f56f04cb37a62d PkgTTC-SGr-IosevkaFixedSS02-29.0.1.zip
|
||||
d6e6c3aad8d6f4e7ddf8b0e74cafce075f11d646866fdb847703cb8aca32bd21 PkgTTC-SGr-IosevkaFixedSS03-29.0.1.zip
|
||||
26b2753c537a88e91cda6cf33c96d8586cc25ad5dc0aacf6e7bfd119d235465a PkgTTC-SGr-IosevkaFixedSS04-29.0.1.zip
|
||||
313ff9f3173c08a1057afdf1334ef4e1a5e000055223be20400b7d87dd15c2a6 PkgTTC-SGr-IosevkaFixedSS05-29.0.1.zip
|
||||
14b65ca08ec7219b866726143fd6d77972f4a88aa3f4d562b251ec8c0ba0c5d4 PkgTTC-SGr-IosevkaFixedSS06-29.0.1.zip
|
||||
cadd5da6d64b866d0a9e4a74eeb8ceae85f1aaec0fbeb8f6b75694a17883d7bb PkgTTC-SGr-IosevkaFixedSS07-29.0.1.zip
|
||||
3362fe7cb068415baac9d8de57cb32c93eb2048c0d7dcc0d9985752bcc0d142c PkgTTC-SGr-IosevkaFixedSS08-29.0.1.zip
|
||||
490f057efc499e62512d023c7b2f0850e3502569cc9d8ef288fbbdc1c8e3c2c6 PkgTTC-SGr-IosevkaFixedSS09-29.0.1.zip
|
||||
4610de34b60c3da99919a427ef0b3c20c754c2fcba006dc3bfc88cf53bceea54 PkgTTC-SGr-IosevkaFixedSS10-29.0.1.zip
|
||||
b468e4aa6c7e5fed6ced87f554d578b3a7cc9e2f17f8cd95bb936398b5a2e16f PkgTTC-SGr-IosevkaFixedSS11-29.0.1.zip
|
||||
16e2d1ec6cf5416d2e945d65d57c06602438023570c7c04d4e6a464990975e14 PkgTTC-SGr-IosevkaFixedSS12-29.0.1.zip
|
||||
a3d0900a817c125becda3f008a8da71bacd2ea751afc1b17a12db1456a481a27 PkgTTC-SGr-IosevkaFixedSS13-29.0.1.zip
|
||||
fb375ac8ec6956b61855e2c126b4a878d77ce91c36dd285f3d6e47d552e7d2f4 PkgTTC-SGr-IosevkaFixedSS14-29.0.1.zip
|
||||
3cdd049f6aa936184c260360eb49ef85c8327ba9eda42eb396f7a933ff28cd5c PkgTTC-SGr-IosevkaFixedSS15-29.0.1.zip
|
||||
1019fe5e681a79d73fb31ae9914ee8997df30330586f58b803985ea4c83d9cd8 PkgTTC-SGr-IosevkaFixedSS16-29.0.1.zip
|
||||
1ddc5fa00c7d47e72f04d66b2419c487d78331f945371adfa39f9aace6e4515d PkgTTC-SGr-IosevkaFixedSS17-29.0.1.zip
|
||||
e6de034a5cb83918b99962b7732e8327979d210e1af599d0d3e3f3db3fa21d3e PkgTTC-SGr-IosevkaFixedSS18-29.0.1.zip
|
||||
5d47b17bc621d6af8045713ed8e8b62d415c6c54f0d027b9269123463a9040eb PkgTTC-SGr-IosevkaFixedSlab-29.0.1.zip
|
||||
2da973b369309010f28c2e45fbe7e14bcaf44c9f5a463734a50e9045953e86a4 PkgTTC-SGr-IosevkaSS01-29.0.1.zip
|
||||
a3b75ca5108e4a646db106972cafd9c1b96e0ac670d3f2033514913d66ee1e6f PkgTTC-SGr-IosevkaSS02-29.0.1.zip
|
||||
190ec85397b597a0870b15d661c71b7191dcdbb9720af54aa1e3aa4c5ecb69f8 PkgTTC-SGr-IosevkaSS03-29.0.1.zip
|
||||
f0deb401205c26f07281954371db43b9c902db24e25b94e5e1480ce84213fdc5 PkgTTC-SGr-IosevkaSS04-29.0.1.zip
|
||||
87f198c0a040786b4116bd943f47438bb8638611b5b6a4a12446a6176de0fe28 PkgTTC-SGr-IosevkaSS05-29.0.1.zip
|
||||
ca831fbe86d6dcd29ecfa3c67ae0066a73e1501bf89927f61500d254904638b6 PkgTTC-SGr-IosevkaSS06-29.0.1.zip
|
||||
e6fe361379155e37d3142600b9ce6fb46fb883a235779dff6fd73a1c74e53379 PkgTTC-SGr-IosevkaSS07-29.0.1.zip
|
||||
8bc71a8e13eb8cf2494f2e3d05d5aec15f2197a0dd7db00d9b36170626db8f7e PkgTTC-SGr-IosevkaSS08-29.0.1.zip
|
||||
a392d01d801d37864738abc3cb0b92130e4cd5eac4f27e006aa9cce85929192b PkgTTC-SGr-IosevkaSS09-29.0.1.zip
|
||||
eb08816577e5aac7d7ada01ae9317bf81917676a48a475e7f8449b3338734c65 PkgTTC-SGr-IosevkaSS10-29.0.1.zip
|
||||
0d242cec4554398004007bfbc8eca90a579b0b32d0990e866143afba6f79395e PkgTTC-SGr-IosevkaSS11-29.0.1.zip
|
||||
b385e141fc654cd8ecb00cdc0879c7fb0ba9bbf0ee384ff0ae908558b594a142 PkgTTC-SGr-IosevkaSS12-29.0.1.zip
|
||||
ce547a1421645d50ea67a5bc1d7f80c692c81d8fab64450ae936a6ae4cc017a0 PkgTTC-SGr-IosevkaSS13-29.0.1.zip
|
||||
4760a7b5bb46d50cad5acf26cf42efb7ec2b8ac72cd1bc675bf232a413af0c88 PkgTTC-SGr-IosevkaSS14-29.0.1.zip
|
||||
f6c74cfc0b6a1d215cb7b54d71f2a882a2a0433c0b47d0da422fda79d92ea283 PkgTTC-SGr-IosevkaSS15-29.0.1.zip
|
||||
6b95c1e05d6f403cf4f4c4abc2747621a36d69cf3194f9f33f20efa7cf3fa04a PkgTTC-SGr-IosevkaSS16-29.0.1.zip
|
||||
8fd42ecae27063e3b16a2311d1616185e73b0e061d1d99a33f8bb93d3c1b7680 PkgTTC-SGr-IosevkaSS17-29.0.1.zip
|
||||
4e6eba9726cca12f9e7d196dd91ec90ad61e3eaf95ed061a7900da4302c12fbf PkgTTC-SGr-IosevkaSS18-29.0.1.zip
|
||||
9ea23d0b55c4d4ec2c9c03db94bb452eef1afd5c068c5ea295dc936c7daca681 PkgTTC-SGr-IosevkaSlab-29.0.1.zip
|
||||
854aca7c3be50a5e189bb247df53028f9a4235a942ed12181731d2fe2b376544 PkgTTC-SGr-IosevkaTerm-29.0.1.zip
|
||||
af5aaa83088c550282b2998b1757de7ee31b3e99b63d21ebaa4f448e4005cad6 PkgTTC-SGr-IosevkaTermCurly-29.0.1.zip
|
||||
72bf4c94691672b089b48bb0458877c54500c25327d130ade96ddaf27838fe19 PkgTTC-SGr-IosevkaTermCurlySlab-29.0.1.zip
|
||||
ee9a1e7e4f4528c563e17be30f9b23f7c270e35ca947263baa10fd61c5c8d5be PkgTTC-SGr-IosevkaTermSS01-29.0.1.zip
|
||||
894db161eb8ea663b95e895d196f85a557447635dd03ff5ce2b8bb3b894748a5 PkgTTC-SGr-IosevkaTermSS02-29.0.1.zip
|
||||
f19a82c4ebb6743794914572c325bcf525e5890cc6cd727ab9c0bdef5e88c18f PkgTTC-SGr-IosevkaTermSS03-29.0.1.zip
|
||||
771323f45740b8496913b1ee63faeb07d5dbb24580674374ba37742ee43337e0 PkgTTC-SGr-IosevkaTermSS04-29.0.1.zip
|
||||
cb43fab102560270f261bbf06a01c04c1be6eca6db92f68f90daa588962e7fce PkgTTC-SGr-IosevkaTermSS05-29.0.1.zip
|
||||
3170a604aefc57e115496ed786b47d1ad2670d073822a719060f5344850f6cf1 PkgTTC-SGr-IosevkaTermSS06-29.0.1.zip
|
||||
399a9e2fce277d551cf61071c10eee1ed2bad127b704f98ecbc1474a71d53ce9 PkgTTC-SGr-IosevkaTermSS07-29.0.1.zip
|
||||
22961d3b8937e43b74d6da6434a5c877d90617baa5d07120ab5636452dcf929d PkgTTC-SGr-IosevkaTermSS08-29.0.1.zip
|
||||
144fbff7a9dc1db4190926e60d166bd488ce36cc49906b67a0966204f935de99 PkgTTC-SGr-IosevkaTermSS09-29.0.1.zip
|
||||
95f29f5c0d78ead0865a1318fa3319aaf82fcc56c1b30341aa080cb620c6e36d PkgTTC-SGr-IosevkaTermSS10-29.0.1.zip
|
||||
4464d0796fe0a6326466d02c5fccda1f39f792c585dde586b0f2b76c911f6722 PkgTTC-SGr-IosevkaTermSS11-29.0.1.zip
|
||||
0697eb04ad21fcb91cc3882a5d7234b4338e7cd9b0c6cfb617ca1cbf08e77483 PkgTTC-SGr-IosevkaTermSS12-29.0.1.zip
|
||||
7485377a939ca431186440badb703e36478c5b21233e32e2138495d974dbc2a8 PkgTTC-SGr-IosevkaTermSS13-29.0.1.zip
|
||||
e0ff15d8c8c2a069d401ce056be96babfa4efc4ca88ca33dbc8812c47528022b PkgTTC-SGr-IosevkaTermSS14-29.0.1.zip
|
||||
2933bc34a279d567cdef8f37e4041d82a8dbe1f242ddd7c387ae3dee09af5457 PkgTTC-SGr-IosevkaTermSS15-29.0.1.zip
|
||||
e286bab77ed5629924fce796ca04c79a14c7f4833dc78747db51471343d522eb PkgTTC-SGr-IosevkaTermSS16-29.0.1.zip
|
||||
09725df883eecda5a965666e9f82edb0b8675cd5c0d5e221ce1060702f80a303 PkgTTC-SGr-IosevkaTermSS17-29.0.1.zip
|
||||
5fcbc363303a503196fa376cdc37252b6c725127200807aa6af971c739be675b PkgTTC-SGr-IosevkaTermSS18-29.0.1.zip
|
||||
d92a7bd3b357d295fa05fdec88aa3aeb8d491d58b7041fd50ec26522140245f0 PkgTTC-SGr-IosevkaTermSlab-29.0.1.zip
|
||||
db98d7cb3711937739d202972afa6e2027fb16e08027fff3a79090d193cb8be6 PkgTTF-Iosevka-29.0.1.zip
|
||||
4ee222e14eb6f27e1e576ca5747fb0ff800713dbb1ac08e1c4ea27f837f9a7cc PkgTTF-IosevkaAile-29.0.1.zip
|
||||
307c7a976322a7e8b040e10bce67071b260fa92e8c86fcafee529f11e24be81c PkgTTF-IosevkaCurly-29.0.1.zip
|
||||
9a4bf1b1d84b370a17068df9df3c71f5fc7ae27d803a898af749c1121c192f95 PkgTTF-IosevkaCurlySlab-29.0.1.zip
|
||||
e04d267ceb46a9f935ecdf35f2c5dc3c88e3034ccfa3b1f3dcfa4f7aa3a8c6e4 PkgTTF-IosevkaEtoile-29.0.1.zip
|
||||
b68fc097ebe1b04c9a94b2c0afa895ca8811f538c648b6efb9c81f028bf27b22 PkgTTF-IosevkaFixed-29.0.1.zip
|
||||
44051088beb9d8eba9885ac5cb1e4820927eb2045518d78f5173b39f9b4d0027 PkgTTF-IosevkaFixedCurly-29.0.1.zip
|
||||
2d49504b851f75640ac244d85de61e6656dae30099899bf3478e5938779087da PkgTTF-IosevkaFixedCurlySlab-29.0.1.zip
|
||||
71ee0d3e3483f86bde6422524ae769a4f98d257967dab6dbf541997d6b558770 PkgTTF-IosevkaFixedSS01-29.0.1.zip
|
||||
4e65eaf32c91dfe3d34ed7d2fa70b2b0d9f9204abd53cb398bf41c575397e491 PkgTTF-IosevkaFixedSS02-29.0.1.zip
|
||||
8c883e3a82867bec18c6881a500fa32057cdc51c6ccc1f3afaa0ded9332d9875 PkgTTF-IosevkaFixedSS03-29.0.1.zip
|
||||
4c87c1256c0801803379091c68fcfc2514298ec3d160d440a35009778151a631 PkgTTF-IosevkaFixedSS04-29.0.1.zip
|
||||
f4c3ec7b188c0e3ba15249aa2838fbb2fce0e8f13b6b130910daf59c7e7083a2 PkgTTF-IosevkaFixedSS05-29.0.1.zip
|
||||
2a05ffb8489a19172a941ae1d875081ec8f44579efb140b23566af23e04dac20 PkgTTF-IosevkaFixedSS06-29.0.1.zip
|
||||
bd291a9f01d80c8f02d5a72a0ef8e9e4af40dcd4349e8a09fc6530db6c0488c0 PkgTTF-IosevkaFixedSS07-29.0.1.zip
|
||||
2f1142d9b87964b4a8f712f94da5948d93b66236ad4687fc47a3c8f13cdfa65b PkgTTF-IosevkaFixedSS08-29.0.1.zip
|
||||
0d1a0ded661c85cdceebd63878a6ddb486ba2ef7b61f2a689c6c08b616adb1f1 PkgTTF-IosevkaFixedSS09-29.0.1.zip
|
||||
c118eec6ea1e724bb7aff1791825a90dda73f6281133da8877750552919d0e59 PkgTTF-IosevkaFixedSS10-29.0.1.zip
|
||||
eeb16d7f7c40741e3080a6df0e2e8a8492ebc8e8cefd0ffdf0041e3d100aedcc PkgTTF-IosevkaFixedSS11-29.0.1.zip
|
||||
382b9d889ef1f2f3a93da8bdb162d55edc057319541c22f9a0e92a959170d4cb PkgTTF-IosevkaFixedSS12-29.0.1.zip
|
||||
7d8e2661afbf82be898b834f779dc818da1762a7aa8e3b0c69bae66250bee048 PkgTTF-IosevkaFixedSS13-29.0.1.zip
|
||||
48cb322106fa29f0cb940c712bee412470ebcc9692cd1b3615438af47236f68b PkgTTF-IosevkaFixedSS14-29.0.1.zip
|
||||
f015411f4db21d705bf67929bc7807361ff2d09330f124d0b9b4a2fbf8f1a87c PkgTTF-IosevkaFixedSS15-29.0.1.zip
|
||||
6f540f3549b6bb57f182eb6eb1a749440a30e093c4284cbde1b6c72a0895cbf7 PkgTTF-IosevkaFixedSS16-29.0.1.zip
|
||||
915d9b9e1b686acd1b6549c91a0fc603568d893bab9912119a2a19129bc199d3 PkgTTF-IosevkaFixedSS17-29.0.1.zip
|
||||
6475d45b8ae5ee2a7bd0033dfcb115a31e2b14fa017d52995adead7d35407771 PkgTTF-IosevkaFixedSS18-29.0.1.zip
|
||||
05ca30ac613d23b7d56f454525bb35d3af466565c2ce528c01a4a09f56729bb6 PkgTTF-IosevkaFixedSlab-29.0.1.zip
|
||||
83c6f3b73ce773ce312ece5fe3dd1dec1158de2f5017c20764870a6cfa44a26c PkgTTF-IosevkaSS01-29.0.1.zip
|
||||
96b431439e492204a399b0dae29fded2e33b4e2f1a7eeb46376cb7cd6f8e2260 PkgTTF-IosevkaSS02-29.0.1.zip
|
||||
4ba64a9efa0a4243403a9302d68b2572768bf4b5070bbedb525a56ad74c550b6 PkgTTF-IosevkaSS03-29.0.1.zip
|
||||
0b36a9c206fcd782c4496988f9e0d1e7857fc104f60c16679a32fa554276a512 PkgTTF-IosevkaSS04-29.0.1.zip
|
||||
8e00bb85c844c4f0a903cc835d82b3fad061aea95e31361cf60564361b356012 PkgTTF-IosevkaSS05-29.0.1.zip
|
||||
c6d924b49610bfdb09a035788403ccd87d3208b934d3ec3239aa24aad5dabb8d PkgTTF-IosevkaSS06-29.0.1.zip
|
||||
aa05f611055cda14cb76cd19cdca476290305b44724f11c90ec9d4db53958419 PkgTTF-IosevkaSS07-29.0.1.zip
|
||||
16c6b4e826e4038adf1991e5ef6ee32ffa1b6d7a1247b34162964381590c3130 PkgTTF-IosevkaSS08-29.0.1.zip
|
||||
8d75441f00051a8049bd2e424253467d6d76a6a712080a1cc8e2c30bce463b47 PkgTTF-IosevkaSS09-29.0.1.zip
|
||||
2481c9eb79f6fe86806b66be023ea07d6d9178053a96183097c0210e59789d2c PkgTTF-IosevkaSS10-29.0.1.zip
|
||||
ac915f3a212420b9d2f8732a32a3c84f5c9a8c97d78c892bd4bf486d8d1cfc61 PkgTTF-IosevkaSS11-29.0.1.zip
|
||||
d351dfb363f98d399cd5475c566441f93011deff3f2939404e16a00ef9e7d16f PkgTTF-IosevkaSS12-29.0.1.zip
|
||||
c2bcc5c36fc549eb7fec89bed8a0b8ccb77bf65ff584d7b566ed3ff1e6f13e3b PkgTTF-IosevkaSS13-29.0.1.zip
|
||||
7990c245a1cb4dcc814fcf2ccb8fbe78ae2d832b515e1347d0dbc280b023e52c PkgTTF-IosevkaSS14-29.0.1.zip
|
||||
244918ef344c52dad3df06bff7345d11cfffa9b9dbf2b8f95bf9982a1264196e PkgTTF-IosevkaSS15-29.0.1.zip
|
||||
5a9bd7dafcd7983c5e07f1f962c393039e2f9de5e8e6757db3902cff14c78fbd PkgTTF-IosevkaSS16-29.0.1.zip
|
||||
319dfdfbe407d4e7a55d16c84890d047c323adbb7c0638114934b4e9fe82417a PkgTTF-IosevkaSS17-29.0.1.zip
|
||||
599b86f221591c699e5424fda1227f70fb6dfb36efd0a2d1c54dd86c1d2fd581 PkgTTF-IosevkaSS18-29.0.1.zip
|
||||
62551de5cbcf5fe971bd6b7e1aa2c8dd6427732265831c4f495050090110f5da PkgTTF-IosevkaSlab-29.0.1.zip
|
||||
0223995fd4791a46978a71bd62ad60b47d6a5d337f93e1d8602685a1beb73e62 PkgTTF-IosevkaTerm-29.0.1.zip
|
||||
86aecb9cfb8d4214aa26b8043b97f72d1d7d2d3ba1e0d442d768551b362ef2f2 PkgTTF-IosevkaTermCurly-29.0.1.zip
|
||||
c9f0b3202c32f061390e19df5627a66867aa528918c2f88f911feb8938f5f790 PkgTTF-IosevkaTermCurlySlab-29.0.1.zip
|
||||
ee260594480863edbd0c419dfb18ee7c072e330d579943e82bb1aec03a2837ab PkgTTF-IosevkaTermSS01-29.0.1.zip
|
||||
99639bd3f29159acc21fc557a3fc0c15160397ca34c1be2d8f0a218326ffb560 PkgTTF-IosevkaTermSS02-29.0.1.zip
|
||||
9ee9d496d5cda166374be8871f37caacad1d638fc73737494204987dd5d36e29 PkgTTF-IosevkaTermSS03-29.0.1.zip
|
||||
c61b473fd22f346ff774087384c9cfd915aa4bedc2380a386467bcdfdcc80e04 PkgTTF-IosevkaTermSS04-29.0.1.zip
|
||||
ed52acc3c8a298a838f4c074ed01693efc28c9eb8dc4482d4d30bfecf79cedcb PkgTTF-IosevkaTermSS05-29.0.1.zip
|
||||
fc6c9bacd54de7e3d707ea808e279805eb24515add4f445311b748189c5b6742 PkgTTF-IosevkaTermSS06-29.0.1.zip
|
||||
fe8cb45dd47777800dac299781c234bbda08467d9e927cdacf3dd4773bc6075e PkgTTF-IosevkaTermSS07-29.0.1.zip
|
||||
853d6e6b58985750902e8f7ec5ee331345b7a126c69b533560b8e5d74704f5a2 PkgTTF-IosevkaTermSS08-29.0.1.zip
|
||||
bde4cb05b46f8d50ca4e2ddd179e7ecceaa62c340a65e5780a0cdf0c905f529f PkgTTF-IosevkaTermSS09-29.0.1.zip
|
||||
54a6e58facf1bec1228d8809051366abd481a8fc1becc8b816278029a86f07bb PkgTTF-IosevkaTermSS10-29.0.1.zip
|
||||
535022fadbb43044b1f954cfeb36aad95c0a5ef06a50e8312c0005f8cd825c29 PkgTTF-IosevkaTermSS11-29.0.1.zip
|
||||
313fe4d0fa62510ac81e479c557aae2b71bfa195714d7e18624abcf7b53d2435 PkgTTF-IosevkaTermSS12-29.0.1.zip
|
||||
689910ac3b4851adb7215bebfd5fe57a53b91f0c9ee664030ee7bb60d5174f15 PkgTTF-IosevkaTermSS13-29.0.1.zip
|
||||
b148b1f8dbe8759fe08e652939b01701c5e6e5cbd55588a70df2ce0daafd86dd PkgTTF-IosevkaTermSS14-29.0.1.zip
|
||||
6d6764f69db0586694b74af83c2d2a6c72cd65751be1415c610205ef549a21e8 PkgTTF-IosevkaTermSS15-29.0.1.zip
|
||||
7812a07c65d4f548948436a2272c576579c7f98e57596676ffa8fdd73eafe311 PkgTTF-IosevkaTermSS16-29.0.1.zip
|
||||
5d448e067be5facce5ceb9bb5ff51de54526d3eaa59058c22f7884ff1935c220 PkgTTF-IosevkaTermSS17-29.0.1.zip
|
||||
58a600f7425ae57d88c0791cc2b71f92049ecdcfe46fefbdbca43b92743d1e26 PkgTTF-IosevkaTermSS18-29.0.1.zip
|
||||
3d8299048350012902b4a78c13ea64d33098065e9d56c6776894f4c8dda23599 PkgTTF-IosevkaTermSlab-29.0.1.zip
|
||||
1431b6d36626d39f0e7815b9dcd0e1d41ff0bcb20ecb168e4bef60ec315913a0 PkgTTF-Unhinted-Iosevka-29.0.1.zip
|
||||
9d4808a86ace9b91c26a0a9f44f29cf498231e59314c30f66f766b5f4e34f250 PkgTTF-Unhinted-IosevkaAile-29.0.1.zip
|
||||
08e3f21e8d7d9c2b57b0804c98b29027c9c7f827ad342182b2350e4000f24aef PkgTTF-Unhinted-IosevkaCurly-29.0.1.zip
|
||||
54c2e1abb1f4dca5a6c9c01f26b8f0769e49c36367208bba9fa01637e6d8d0f9 PkgTTF-Unhinted-IosevkaCurlySlab-29.0.1.zip
|
||||
87ec18ea2b39dd6b0d99cf8064134d223389b44a43cd0a55bbf037c7ca09a84b PkgTTF-Unhinted-IosevkaEtoile-29.0.1.zip
|
||||
bbc07c55e8df6b36c8e9af4edcd99774fcf91427dd56ec32bb89a5f234c55f7e PkgTTF-Unhinted-IosevkaFixed-29.0.1.zip
|
||||
3e158d236faac36d4b089f5a496c6ecd16466c7cb1af5828b7e8c912df9dab22 PkgTTF-Unhinted-IosevkaFixedCurly-29.0.1.zip
|
||||
2de01f30c9a2520e93fae902c41c34642c66824fd16b8539706a298054cdf9d7 PkgTTF-Unhinted-IosevkaFixedCurlySlab-29.0.1.zip
|
||||
dbb09cde8676dde98d51605749cc02a8d927b01b812bb30d79769437bf452cc3 PkgTTF-Unhinted-IosevkaFixedSS01-29.0.1.zip
|
||||
70f0ee76070d75005121516a24398c66d5071e9a491ca6c69f8eed1acacfe96f PkgTTF-Unhinted-IosevkaFixedSS02-29.0.1.zip
|
||||
9583dac1ddbec4482c93c7ba805e593cfbffb773703d870ba938253ec09fc85c PkgTTF-Unhinted-IosevkaFixedSS03-29.0.1.zip
|
||||
39c07011549b641444ad2abad73a80c18f1ea96c0f1940e550e889b71fdd7377 PkgTTF-Unhinted-IosevkaFixedSS04-29.0.1.zip
|
||||
609ea59b7f69dd0abfe66b083f13885dddf385eab4eae3b9cff876dc49480748 PkgTTF-Unhinted-IosevkaFixedSS05-29.0.1.zip
|
||||
42be1448f5c3fa0613fbc548c863052adea9e37c812f5c04808f316469063058 PkgTTF-Unhinted-IosevkaFixedSS06-29.0.1.zip
|
||||
ff47332f49144d0a7842134890259c463c3f184743690c2346d12de0ca0db9c6 PkgTTF-Unhinted-IosevkaFixedSS07-29.0.1.zip
|
||||
57e5473cc552acfdd8a75c028a55103f71295589da16c47717760d624e4a0c61 PkgTTF-Unhinted-IosevkaFixedSS08-29.0.1.zip
|
||||
32920c085bf57e751c04f4484c7f6f476186f03474bf63541b37e813fbdcc052 PkgTTF-Unhinted-IosevkaFixedSS09-29.0.1.zip
|
||||
f1376d75dc603da6efd71d691a3089434e411ce00e6a34afa59dc6e5da36c1c8 PkgTTF-Unhinted-IosevkaFixedSS10-29.0.1.zip
|
||||
50241b7bb0d4be7031688a2e73db554b330904d0119765f7aa02e14956cd4512 PkgTTF-Unhinted-IosevkaFixedSS11-29.0.1.zip
|
||||
44274dbbb532d4a1f00de8b483d686d0b56eece6ffdda228322e0fa427ff0c7f PkgTTF-Unhinted-IosevkaFixedSS12-29.0.1.zip
|
||||
82e2a7037bbe23403784265950fee3de01fd99d8bee30f0db14d43295fc2a25d PkgTTF-Unhinted-IosevkaFixedSS13-29.0.1.zip
|
||||
afe9741be87af8d971288d7de86a2244c23437cf94dd1ba99d45e1f144048636 PkgTTF-Unhinted-IosevkaFixedSS14-29.0.1.zip
|
||||
74c6a7c14f1473fa0af88770eb8cdc4b58462299d6b5a6a5112ecc1cbaddc2bf PkgTTF-Unhinted-IosevkaFixedSS15-29.0.1.zip
|
||||
94efc8b20991f1d062578c36c3d477a0fd8a1ccef225972b8fbcc24a46c9e921 PkgTTF-Unhinted-IosevkaFixedSS16-29.0.1.zip
|
||||
53dfe412fff878e81fdfe88a551542e99700330c610c3477a31775b5642db726 PkgTTF-Unhinted-IosevkaFixedSS17-29.0.1.zip
|
||||
d141fdeb9fcfb01139fe45ad72f022d955ddddfba075f29d4a5d6b982fca9afd PkgTTF-Unhinted-IosevkaFixedSS18-29.0.1.zip
|
||||
321b0c0658342c02f230173da5bcf3ff9058c4011e38cbbd8dde47855fcc7cde PkgTTF-Unhinted-IosevkaFixedSlab-29.0.1.zip
|
||||
9b3d802ff5ce3202dc80b238b9c85afcc3cb718c2f2470ab6f17238fc02800dd PkgTTF-Unhinted-IosevkaSS01-29.0.1.zip
|
||||
f56c4228b7c6d306b756febc0003d84b8ebead4f95034a02c83a291e703f3347 PkgTTF-Unhinted-IosevkaSS02-29.0.1.zip
|
||||
daadce3c6f13afc37898d5a2b9cb16a497ed6bce9d510932551f6d5d9fbf7009 PkgTTF-Unhinted-IosevkaSS03-29.0.1.zip
|
||||
c6e1b5fa1546e75d9e49294227489f6b10695b2aafe46c45565ab1b351836027 PkgTTF-Unhinted-IosevkaSS04-29.0.1.zip
|
||||
75a5d878b1356b4db59977a7a1abbf07d07a36d251fee5ce5ba9ded8015924d2 PkgTTF-Unhinted-IosevkaSS05-29.0.1.zip
|
||||
34858b6d728777bd9a0086642132b252f222ebfb06c31e276c5ed88b8041fe50 PkgTTF-Unhinted-IosevkaSS06-29.0.1.zip
|
||||
08384d95a8ac84086363229a4ed692ec2aa300847c721735a6aa9aea6606f2ca PkgTTF-Unhinted-IosevkaSS07-29.0.1.zip
|
||||
4e6908d7fb74486c47abd4199b2c9f5ea7192fef81e3e202cf74708769483d98 PkgTTF-Unhinted-IosevkaSS08-29.0.1.zip
|
||||
9fb5d13e58c783875ad5860ed44822956f8d885fa1d9204274c1a33208622c61 PkgTTF-Unhinted-IosevkaSS09-29.0.1.zip
|
||||
e11da42884e146dd51a8aa5e4615e8073ad876982a659450b37965a974a9a501 PkgTTF-Unhinted-IosevkaSS10-29.0.1.zip
|
||||
e78d84d73dfe6c1de35f3d6290c9b99959471a1877050e4034d66bd7bd0cf1fd PkgTTF-Unhinted-IosevkaSS11-29.0.1.zip
|
||||
1c89cf39b4e522bbcb1a89b04791622ae81d48d448469b9a36a4950909d42ce5 PkgTTF-Unhinted-IosevkaSS12-29.0.1.zip
|
||||
a851666371bfa0404bde564e25be5ab385c5ade8919bfab29b61b0c6fb4aae29 PkgTTF-Unhinted-IosevkaSS13-29.0.1.zip
|
||||
50ae18346d8f3377948baeaa69558260644191227551bdf91b5197f9088d885b PkgTTF-Unhinted-IosevkaSS14-29.0.1.zip
|
||||
93586a8cdebed1acbc914a5e97b09c22fa0fabd9cd2ad9f7631d7786ab008d45 PkgTTF-Unhinted-IosevkaSS15-29.0.1.zip
|
||||
f8ffabf83991802a23f09fe5370c65e36eaff58049989b2e9020f438e61224c5 PkgTTF-Unhinted-IosevkaSS16-29.0.1.zip
|
||||
9c943371027d66f806556e7cad3e81dc89cc85a036e6b4420854c811abe884f8 PkgTTF-Unhinted-IosevkaSS17-29.0.1.zip
|
||||
560a3aa3400a2005881a3449c820db68530b2d350c514df1dcc78f233f89b220 PkgTTF-Unhinted-IosevkaSS18-29.0.1.zip
|
||||
f52f342e658dd84b15e3354fc46e2a0a4a190170a8b21579c231f96d529f92e2 PkgTTF-Unhinted-IosevkaSlab-29.0.1.zip
|
||||
ce3d5cf62571781bb7196356227efbce23dbe4b7add3208e2ba85810e36e1638 PkgTTF-Unhinted-IosevkaTerm-29.0.1.zip
|
||||
5528b4950550ebf0f1262b0768dcf85b825e5d71169203fb1cd91bbdeaa2685b PkgTTF-Unhinted-IosevkaTermCurly-29.0.1.zip
|
||||
f4262da6f7ac089a5abf4c57b9db007a4b062c17add314448f8b5f822a8bb977 PkgTTF-Unhinted-IosevkaTermCurlySlab-29.0.1.zip
|
||||
5ea33d738f8d4bebabf005070ff02096010da383df720ba87e266d4876fad00f PkgTTF-Unhinted-IosevkaTermSS01-29.0.1.zip
|
||||
8e3f228d6df20e270965971775e7887f37a622f9444a6fded9898aac10f16d87 PkgTTF-Unhinted-IosevkaTermSS02-29.0.1.zip
|
||||
01729731242014d64d584b03f69c655f58410ac9d054d487e1afb014020b24a4 PkgTTF-Unhinted-IosevkaTermSS03-29.0.1.zip
|
||||
a6b37d70150a5ffff7e85083ed487fdac2d90e41bec2823e2ddffc2270048fb0 PkgTTF-Unhinted-IosevkaTermSS04-29.0.1.zip
|
||||
10627d68c5d3dc8db201fb8a11e7a8c7d0fa54d59c9e1c83bcdf128359f4f029 PkgTTF-Unhinted-IosevkaTermSS05-29.0.1.zip
|
||||
ca04214bb4419a7058060e30544a66c03accf90ff3e7034d2af1487d0b35584c PkgTTF-Unhinted-IosevkaTermSS06-29.0.1.zip
|
||||
6341448eec652f25591405f8e29a5ef7551044f9373ad467518f04155153ed87 PkgTTF-Unhinted-IosevkaTermSS07-29.0.1.zip
|
||||
b75cb713753f51e44517e91d9270d7c743feefe9733b2e135afe23f257eaec44 PkgTTF-Unhinted-IosevkaTermSS08-29.0.1.zip
|
||||
acf2f5bde35a5b7cf8d8bf300fdad0bef9858923a4152d0c0dbe7a89b7bf5c26 PkgTTF-Unhinted-IosevkaTermSS09-29.0.1.zip
|
||||
e2a4fbc0d00af917ddf2b0edc74d71b706ab8d158a109e099f72b96a473c8cf2 PkgTTF-Unhinted-IosevkaTermSS10-29.0.1.zip
|
||||
95a58dfa0a4e54e453f6eb6376355d524753d8176d7902ee3f908d718b0ab19d PkgTTF-Unhinted-IosevkaTermSS11-29.0.1.zip
|
||||
ae06d13df6621f1dce8d736831c251d96edc4359686115edf6310b783df66b3a PkgTTF-Unhinted-IosevkaTermSS12-29.0.1.zip
|
||||
c3663e8842f362444eed17b6b0368aaeb5e0b8a99cf3434b107bde40dda57211 PkgTTF-Unhinted-IosevkaTermSS13-29.0.1.zip
|
||||
0163dc79a4cf345f3ff41af530ffb59bce8a236abaf49e7807f0c0014e3a8267 PkgTTF-Unhinted-IosevkaTermSS14-29.0.1.zip
|
||||
53a178af456fd44286102dfec648fb1356dba0687904ba127564fdb29594e295 PkgTTF-Unhinted-IosevkaTermSS15-29.0.1.zip
|
||||
531f1b1057d891573232758fdc457942c6662441fd6c597954498add3fe97cb1 PkgTTF-Unhinted-IosevkaTermSS16-29.0.1.zip
|
||||
8c0265a67f855552a46011b0bd1258ed3190b307ab0b362ba966cc218d538066 PkgTTF-Unhinted-IosevkaTermSS17-29.0.1.zip
|
||||
91bbe3ce8a17244ccd5f8305d576ac757841e7790d9faac1f6be81d19fd25d6f PkgTTF-Unhinted-IosevkaTermSS18-29.0.1.zip
|
||||
61d4cfe60722033db3c7e671b70795a6d919f113481fed54dd4810e5a8561aee PkgTTF-Unhinted-IosevkaTermSlab-29.0.1.zip
|
||||
56aa565006c6a716ac15a73fec4d629c0e5200fe9f43967d6422db5c6a41f43d PkgWebFont-Iosevka-29.0.1.zip
|
||||
28ddb80288e56e052573b3a5f586c57c541da91769547f92fb47d82f21ad00f0 PkgWebFont-IosevkaAile-29.0.1.zip
|
||||
e16de0e136e71149614f335f71765f700bae65adda38be3974cbaf03e8e38a08 PkgWebFont-IosevkaCurly-29.0.1.zip
|
||||
8c37df2efba88ae5b3b694ced58fa43cfda4915c1f43090cb82f38b0225485b3 PkgWebFont-IosevkaCurlySlab-29.0.1.zip
|
||||
7823514da5274728798903746f6fda73daceecd015e305d5d12f1f1e82cdecdf PkgWebFont-IosevkaEtoile-29.0.1.zip
|
||||
3e62c8a4a062851c8cd89f0aa5bbbc26fd0841d7db42e82392bba1a09cf579ce PkgWebFont-IosevkaFixed-29.0.1.zip
|
||||
13ab16811345a7d4ef169aa6c5cc3d17dc5ec12e9b81bd96188f6b4f3ee52727 PkgWebFont-IosevkaFixedCurly-29.0.1.zip
|
||||
426e5c93c62361b4df7739612f9840ebfb48fba537558bbd107f53a1b1190cdd PkgWebFont-IosevkaFixedCurlySlab-29.0.1.zip
|
||||
9583c4dcb309960ba1f63114e7e9d4804b2e9edd3dd71eb4e9d02ea40ad1eba5 PkgWebFont-IosevkaFixedSS01-29.0.1.zip
|
||||
992df8066e00e83d1f7b3822a44e46a8fd33a069a023c4ee0f25666aff4e1380 PkgWebFont-IosevkaFixedSS02-29.0.1.zip
|
||||
d964de75d89a59edea3613332f7d06fd1f22772cf071b0acaf45a2e4532c380a PkgWebFont-IosevkaFixedSS03-29.0.1.zip
|
||||
ed0ac211bcadf04e6c1e71341b331ecd2631e373063000654d9c2e95d1477205 PkgWebFont-IosevkaFixedSS04-29.0.1.zip
|
||||
2a9a3fdbd7669e7e16c78a154d79f6ad13d48f5f1fee60fd3f1a033c967ea1c5 PkgWebFont-IosevkaFixedSS05-29.0.1.zip
|
||||
23cbaf4ca90e3672bd23043ac743aba911000687a516ba67b88061e711130a95 PkgWebFont-IosevkaFixedSS06-29.0.1.zip
|
||||
2611acd26a76a0b95aedc6241cfb3fe1942cf030b76ad7428591cb310b49ad15 PkgWebFont-IosevkaFixedSS07-29.0.1.zip
|
||||
681228651cde1e0f299cbc226d38849c8bd6b0fcf802569f985528fa72742d1e PkgWebFont-IosevkaFixedSS08-29.0.1.zip
|
||||
2b19eede274d2800566b8312bb3c60e07372cb122b0a2e5506a18ae858bbfdb4 PkgWebFont-IosevkaFixedSS09-29.0.1.zip
|
||||
cb36e22d8416496474dee939eea776356edf73b1bd4313b5bd98ecf8160685d7 PkgWebFont-IosevkaFixedSS10-29.0.1.zip
|
||||
c5b6481d57e63d36e4153eda491776572f5dfc031f47cc81fe92ee235d9f93cb PkgWebFont-IosevkaFixedSS11-29.0.1.zip
|
||||
9e091106a4aff47bfb6fcbe9b69edc0cc1df358ec933dfdec1821cdaf6d27b4c PkgWebFont-IosevkaFixedSS12-29.0.1.zip
|
||||
089de39a097e1ac0a804b58bdd355502ab01f0f8a9add6281f5af18b6253e608 PkgWebFont-IosevkaFixedSS13-29.0.1.zip
|
||||
0f3bed433c10157c0f34aa56ed1c8edfd9420bbf2c854e1b81ba44fa62e2c2ec PkgWebFont-IosevkaFixedSS14-29.0.1.zip
|
||||
6f3516e5fceae4504ef17803f875389f0dec8011b0a51b855d02c708e2617ff6 PkgWebFont-IosevkaFixedSS15-29.0.1.zip
|
||||
a90df703942aa03eeb52ed4f1ba2896950e875fc32e8ad173a3e5d8d0c2a8cdc PkgWebFont-IosevkaFixedSS16-29.0.1.zip
|
||||
05c67cb5f7240f3b1d9542917c6e37c9f22e90eef3af2a09f6b48e0707da3c8a PkgWebFont-IosevkaFixedSS17-29.0.1.zip
|
||||
9421eb7bc09a370c9aef4efe64d25628f7f6739c9c7afdae5555daed85dfc7c6 PkgWebFont-IosevkaFixedSS18-29.0.1.zip
|
||||
eebdae463488fe7a7b5adceba42708b99442c8a898211fafb1452d782b110c7b PkgWebFont-IosevkaFixedSlab-29.0.1.zip
|
||||
1dd9b156f299a611a42d69e0664a7dd98057014b49f5f9bb1888e5688ce87076 PkgWebFont-IosevkaSS01-29.0.1.zip
|
||||
6e8ca9a4d8a9e4528406501a516edae08d9e6c5d7943ef1f956e4db8d52ed47b PkgWebFont-IosevkaSS02-29.0.1.zip
|
||||
4583152aa3c7d2d5862916097b5f4a01f8faa6fe89d74b767ea6aa81ce9679ce PkgWebFont-IosevkaSS03-29.0.1.zip
|
||||
fb953aae212aeb3869ebe3629388f761763f266708cac0af8d5b997d9224ff06 PkgWebFont-IosevkaSS04-29.0.1.zip
|
||||
25fdfb99ce18adb0f774a3651fd4e38cf5dc6c5ebdb62443ef555629f9d8d600 PkgWebFont-IosevkaSS05-29.0.1.zip
|
||||
f34ba86330ed15f49e556513b6695cac2c4c2407d34ec64a78048e3bfa1ccf50 PkgWebFont-IosevkaSS06-29.0.1.zip
|
||||
08410fc750d17dade3fa1284bc5b234480899574236a459efe4bdef5a7475af9 PkgWebFont-IosevkaSS07-29.0.1.zip
|
||||
9efd4d3936e77ac66cf22789099dfb9074ca6aa9a29c4945521ccf25f1772f9c PkgWebFont-IosevkaSS08-29.0.1.zip
|
||||
7b3aad8f9b89a7b0014b8dbe12e312b3e7c94313c189a5c3790ffa14ed3c2e26 PkgWebFont-IosevkaSS09-29.0.1.zip
|
||||
1d2208b755705fa9a9593d2de2d2322b9ccd622288cb1d5622ae71ac67425953 PkgWebFont-IosevkaSS10-29.0.1.zip
|
||||
532cd5191b3e88a5d110c7d1ce4f64f9648a2aaa954c7f3fa28b9b2bf9f89754 PkgWebFont-IosevkaSS11-29.0.1.zip
|
||||
35900561c07fc9fab95c38ab5b1d49c5873270bf878f7c0ee4e393a19ef5abd1 PkgWebFont-IosevkaSS12-29.0.1.zip
|
||||
6de336a957d371be710151f46d1cbe7093b18eba59470c2f825eb23e602ee621 PkgWebFont-IosevkaSS13-29.0.1.zip
|
||||
da30679a7a008c4730a71bdf6e51fddcba0d660f3e6e4ab0b8b0082c542a8798 PkgWebFont-IosevkaSS14-29.0.1.zip
|
||||
f74ac4f0e0e12af3cbde9dcc541e827ad61fdfe97a305f8af5350a168e7f0786 PkgWebFont-IosevkaSS15-29.0.1.zip
|
||||
a2246fcac62d7025548e624d56218c2ce9f08ff5cd73d9622f7dc97649929dff PkgWebFont-IosevkaSS16-29.0.1.zip
|
||||
cad40d49c5be3cd1dd29b1beded02c8a03156aa218f16646d7d32c2dfac18890 PkgWebFont-IosevkaSS17-29.0.1.zip
|
||||
bfb17e06d1b591aaa91b5005a39313b5b63998672a59d15ce4b6b64e1a0caca1 PkgWebFont-IosevkaSS18-29.0.1.zip
|
||||
d9484d46d5dea6222ca6eeb0f223a38772981bd2eb2c2c2afb5c88464a8d7a12 PkgWebFont-IosevkaSlab-29.0.1.zip
|
||||
0f96f71ec14c91d60a18488574b4796e0df2e2b75c8f4e2bbeda761c3c866b3e PkgWebFont-IosevkaTerm-29.0.1.zip
|
||||
c79b80a06108cb60a9efd1aeaea3ec9316db0787a65ab56e62922e8aba6a9a69 PkgWebFont-IosevkaTermCurly-29.0.1.zip
|
||||
bc40fa4df8393b27907462be10976e5b5b3f8ddcb9851a4a5fe262fcb90fb652 PkgWebFont-IosevkaTermCurlySlab-29.0.1.zip
|
||||
a7c45a3945cbf8763c003e129295eb61c9f5d13614773bb1942d290735780844 PkgWebFont-IosevkaTermSS01-29.0.1.zip
|
||||
d95f0d5d2aae6c94b1473e59ab0124c21f12b81b3dadfe62e3b75235b3cb0f9d PkgWebFont-IosevkaTermSS02-29.0.1.zip
|
||||
7b5c287db14b9e367f7ad57425e171d9c04ff75e3357ded0eb03e64625652f6a PkgWebFont-IosevkaTermSS03-29.0.1.zip
|
||||
57f87554a0c7dd50c4058431465e313d245dc7f4bbd5f3e608c7d0b7f7c9feb7 PkgWebFont-IosevkaTermSS04-29.0.1.zip
|
||||
08d1e1cc81c21a3561b70a7c4fc2488c60f2bc0a58ca6a5b29f7a8a161b9b58d PkgWebFont-IosevkaTermSS05-29.0.1.zip
|
||||
ce6bd9e807ff1fce59f58cee046dbb120ffa3d3747ac5e60783dc875c543a48b PkgWebFont-IosevkaTermSS06-29.0.1.zip
|
||||
6327e2ca044d43bff7cf9cf809c2c3ebee7ead277bf0d3514c145a7390a6983c PkgWebFont-IosevkaTermSS07-29.0.1.zip
|
||||
dd3d731613da761468fd2d24dfe438efddb64b46ce8553604e5f9ede743787ab PkgWebFont-IosevkaTermSS08-29.0.1.zip
|
||||
584148f2a4185302dbeeca9070ff64502ed69de5c5dd8e8c144261692607c0bd PkgWebFont-IosevkaTermSS09-29.0.1.zip
|
||||
f8caddfce8361e30b2c6b2c84803f4c4fc1ecc07de10b7ca09629ad258cba616 PkgWebFont-IosevkaTermSS10-29.0.1.zip
|
||||
a6418b5f81cc02e8541cad8e8765df85fcdc7be7c718057840248d636b1122a0 PkgWebFont-IosevkaTermSS11-29.0.1.zip
|
||||
a072705fdd30a986a6f14c308d88e72621eaf4248ac6b148ce95b1a3f780d78b PkgWebFont-IosevkaTermSS12-29.0.1.zip
|
||||
3e815724f336fea992270ecf8773758fd70717c78aef52e94e996104ac83a291 PkgWebFont-IosevkaTermSS13-29.0.1.zip
|
||||
bc534fa03c2bac555185ea165691cbf96d2167016a2ddfdd54ca67a2e833f16e PkgWebFont-IosevkaTermSS14-29.0.1.zip
|
||||
ca406ba8cf8833918a0aa4142112b25341074c2acd39e879c9df77f608ec8c53 PkgWebFont-IosevkaTermSS15-29.0.1.zip
|
||||
780cf0b8d9ce42665429f3788456b9027ae3d8db4c339fed1ef4a635a1c2dc1a PkgWebFont-IosevkaTermSS16-29.0.1.zip
|
||||
ca30fbc44a73c132533daba4611189e95136b7c891ef96277ddd60291ce9a812 PkgWebFont-IosevkaTermSS17-29.0.1.zip
|
||||
a4da10db636e4efff66906cf956a94bf894f33fffd2d0248522a4bca6cdfe28f PkgWebFont-IosevkaTermSS18-29.0.1.zip
|
||||
d25139fdcde1b8f0baa91d10a5d46579eb2f15f2362aa3df227b9cc82a47a45e PkgWebFont-IosevkaTermSlab-29.0.1.zip
|
||||
d6a6cae3989043095ed9c6ba6707f6253d3af1c927439d84287c291ffd39867b PkgWebFont-Unhinted-Iosevka-29.0.1.zip
|
||||
e21ab473127c16316617fd320be5671796f74b19d115bd0d93ae4a11de9968c8 PkgWebFont-Unhinted-IosevkaAile-29.0.1.zip
|
||||
5b8ef34b3dbe7425658fbc201e2f8aa50650ed286eafdaf97e722414215dcf68 PkgWebFont-Unhinted-IosevkaCurly-29.0.1.zip
|
||||
fda374dd162a9664ce576794fe67676f1d942b7da6b34d26b04b3c7a172ff31a PkgWebFont-Unhinted-IosevkaCurlySlab-29.0.1.zip
|
||||
ea90cd2247c32c36eda660eb96564a107c3304e251a59a95142d105a5497ada2 PkgWebFont-Unhinted-IosevkaEtoile-29.0.1.zip
|
||||
f938236bf2ce111f26273affd4fa85f8054d33abd24d0e26a001f2d3c777859b PkgWebFont-Unhinted-IosevkaFixed-29.0.1.zip
|
||||
cf504021a1f33e09b52fd35737f6cf71e8ffa365c915713aaf4b80fd14b53879 PkgWebFont-Unhinted-IosevkaFixedCurly-29.0.1.zip
|
||||
4bb10eabdc8c4eda0496f90c0804d769f977cd63826951c729331b4b0d21d4eb PkgWebFont-Unhinted-IosevkaFixedCurlySlab-29.0.1.zip
|
||||
3615cdcc5cb7adad4a1336b9d213c080af42d016dd35be8b8163b20927dc4b03 PkgWebFont-Unhinted-IosevkaFixedSS01-29.0.1.zip
|
||||
63a267377d5364aaaf7cdfac399fd99f8a95fe90defc0fbf2c63f0b3e86ce72c PkgWebFont-Unhinted-IosevkaFixedSS02-29.0.1.zip
|
||||
ca645167c29da975b9e63e066b8fc4431dd21e091269ffb24e21e7b93dc8f803 PkgWebFont-Unhinted-IosevkaFixedSS03-29.0.1.zip
|
||||
50cad33abe97ce5cf4f53396b4b7746df3a6028033151f1b78306e7471f61717 PkgWebFont-Unhinted-IosevkaFixedSS04-29.0.1.zip
|
||||
9e18bfceb776d70c155b2f4215609b770377cb768d82bccb918f42805e8bf5dc PkgWebFont-Unhinted-IosevkaFixedSS05-29.0.1.zip
|
||||
87c493c173a2eeca51b6e968b7a556093bb7427c3688e884ceb521abf0125489 PkgWebFont-Unhinted-IosevkaFixedSS06-29.0.1.zip
|
||||
9497f13852ca9734daeef7fccf977679c9339ef5219befbfd95e634aefd40cf3 PkgWebFont-Unhinted-IosevkaFixedSS07-29.0.1.zip
|
||||
e7c90bc50abb6fa944d75b0d9f82baed212ae8d4c50bd7436770ea9c2988efd7 PkgWebFont-Unhinted-IosevkaFixedSS08-29.0.1.zip
|
||||
662c27e56b9d2ca828837e85ab8e35a3d34cdcfa9d909ca40f8fab7b1f74297f PkgWebFont-Unhinted-IosevkaFixedSS09-29.0.1.zip
|
||||
4fc8131cd50a8af4159829abc80a5b277d5a961abc48ac7943169913a6692cae PkgWebFont-Unhinted-IosevkaFixedSS10-29.0.1.zip
|
||||
5019f06b18673910592c883e5acbd6c2b63cb9a496d4a4b89c3a31aa8a6a76a4 PkgWebFont-Unhinted-IosevkaFixedSS11-29.0.1.zip
|
||||
cd96902495a2171f12b87895a7f258ef152c9919843733ee6e3e55c2be18f2d1 PkgWebFont-Unhinted-IosevkaFixedSS12-29.0.1.zip
|
||||
924808689542f5cb54260414516e91a56ca8c0ede9231b707da7770ec570c1f8 PkgWebFont-Unhinted-IosevkaFixedSS13-29.0.1.zip
|
||||
bae1d63c78049cdfb631f2a7c36094e147f3f65ff6ab68a033d3b0692acd71d4 PkgWebFont-Unhinted-IosevkaFixedSS14-29.0.1.zip
|
||||
a23e317d04a7b185506884c57c44f76ab4ce2d54f42208f6e99dcef1b5324434 PkgWebFont-Unhinted-IosevkaFixedSS15-29.0.1.zip
|
||||
2a3f4eb98488435f6288a7cb2b806efb73c9bad3b7feac152dfe05b3d7fa6667 PkgWebFont-Unhinted-IosevkaFixedSS16-29.0.1.zip
|
||||
51ee88a4a6b0eb1745474a7f928f1d1a5d75b08645229bc4f35c05475ec8d8d5 PkgWebFont-Unhinted-IosevkaFixedSS17-29.0.1.zip
|
||||
9b042307b4bb0faf139d06d6e56b857171dc5ae52e2b9f1434b313daa5e3898f PkgWebFont-Unhinted-IosevkaFixedSS18-29.0.1.zip
|
||||
9a002f49f97c4b248fbff43f3a0a88df6b18f90519350b1924a69abc15a47c21 PkgWebFont-Unhinted-IosevkaFixedSlab-29.0.1.zip
|
||||
29265196147af6f166dfff3d0a0e2150e5b4b6ff06fbc0849fc2aa7dd2739510 PkgWebFont-Unhinted-IosevkaSS01-29.0.1.zip
|
||||
8b86ffc89825dc2b4549acc59c7fc1c07cfe0096f1a78cc0b5e966d488aed51c PkgWebFont-Unhinted-IosevkaSS02-29.0.1.zip
|
||||
b2bd2dd7a8b36819d81a4f069881f179b0b3ece35cc48aa17baa18c5473b0c42 PkgWebFont-Unhinted-IosevkaSS03-29.0.1.zip
|
||||
47c6243cc2818419445363cd08352d016d97a34c285e54170984a1120f6fb47c PkgWebFont-Unhinted-IosevkaSS04-29.0.1.zip
|
||||
f85947af96756e0c430ec362ce03a3f2facd11a74718afa650844f6ea79e07cf PkgWebFont-Unhinted-IosevkaSS05-29.0.1.zip
|
||||
5d73a45d1e4cbaf9c36f35903d69c0db84f7b1ddccb4b821a678021bf0951500 PkgWebFont-Unhinted-IosevkaSS06-29.0.1.zip
|
||||
7aff3c75148ad65a0161d857d549c6ad97096d726986d78940c82b9e1d5f0903 PkgWebFont-Unhinted-IosevkaSS07-29.0.1.zip
|
||||
fd28c6be05f652b58c10147bb146696238498380b654cf907db0e2dedc4589eb PkgWebFont-Unhinted-IosevkaSS08-29.0.1.zip
|
||||
ec8ecf9d73340042bbbc3a5ad591546fc0c989537aae4484c10452d861b31945 PkgWebFont-Unhinted-IosevkaSS09-29.0.1.zip
|
||||
f90ee34aea98bc26cb67cc7acc208eed61caf75432d256060d8739f01f4c089b PkgWebFont-Unhinted-IosevkaSS10-29.0.1.zip
|
||||
83a9102b8481ce603393d2da13db3b92f45b5df81f2725b7f7cd032fb816dd70 PkgWebFont-Unhinted-IosevkaSS11-29.0.1.zip
|
||||
44589c4feb246661e2e776f0c7c179af8ffd697bf739d0d1e56ff452d5138cd3 PkgWebFont-Unhinted-IosevkaSS12-29.0.1.zip
|
||||
b61c4a5505d28ee6625e128276d8363ca80a49d7717bdd368c3d600d190a879c PkgWebFont-Unhinted-IosevkaSS13-29.0.1.zip
|
||||
e571c28f8f44ab519d88270e05d2735132b3e3659187be8dd5c1ee4fbcac9302 PkgWebFont-Unhinted-IosevkaSS14-29.0.1.zip
|
||||
0598eac768836a8818c5c013a09573a0440fbcdc1d1b830ef80f6ed16cf87f3e PkgWebFont-Unhinted-IosevkaSS15-29.0.1.zip
|
||||
db8ad94f307da6837a722fed2d4b7e94029eea56956e7629aa45bd41656d92e1 PkgWebFont-Unhinted-IosevkaSS16-29.0.1.zip
|
||||
4623386f553363707c173c9091278012790229f97cbce1e6dc5fc092c5f2be1d PkgWebFont-Unhinted-IosevkaSS17-29.0.1.zip
|
||||
1e9756313187f3130a420746a166af1a7a80c26c9b7afb48c318138a87af9d6f PkgWebFont-Unhinted-IosevkaSS18-29.0.1.zip
|
||||
d8a8ecb2e3d90d786c1a61d2d10ec2881bf5dfc1b37e32749a46e27aafc8b5ac PkgWebFont-Unhinted-IosevkaSlab-29.0.1.zip
|
||||
4bc21c03e053d343ad11e80dc0361bfdbb49d1140a591e235e4aa29d89604047 PkgWebFont-Unhinted-IosevkaTerm-29.0.1.zip
|
||||
4762cc610b55552de60eca758d1a38c9e2651a8c1cf231249f8458606a9dd263 PkgWebFont-Unhinted-IosevkaTermCurly-29.0.1.zip
|
||||
6fd9870ef9fb8d53242e4679126620f0daf5d7af43252c4384bb27efad384ea7 PkgWebFont-Unhinted-IosevkaTermCurlySlab-29.0.1.zip
|
||||
d5dd5f1c21793b9bbe9005424b38167465416c46842a8b81523fa75b19d0791f PkgWebFont-Unhinted-IosevkaTermSS01-29.0.1.zip
|
||||
87ce4ed3ca2829a127228ebc6d284e311ec06878f23af2d779af2a49352d70c6 PkgWebFont-Unhinted-IosevkaTermSS02-29.0.1.zip
|
||||
d190831b7cab3bd41f05883ee3a0ce7e0c8ecaaf3b9e7effe3897924f058442d PkgWebFont-Unhinted-IosevkaTermSS03-29.0.1.zip
|
||||
e8d98685e8ce5e9feeaec41c6807604e3aedf78eda37a80cc098001a41b2c977 PkgWebFont-Unhinted-IosevkaTermSS04-29.0.1.zip
|
||||
8c1e0e216301a5076a2ba24121eaafc1859405731dadfde2959fa6e4f734c057 PkgWebFont-Unhinted-IosevkaTermSS05-29.0.1.zip
|
||||
b7110fc074e0e0757ceeda2a4d280d2860e21fc99f290a459e1a9a94810746af PkgWebFont-Unhinted-IosevkaTermSS06-29.0.1.zip
|
||||
ee02bf99df93436a3d358a07b080d3a170c8aab4b377183575a7e02e747b9cd6 PkgWebFont-Unhinted-IosevkaTermSS07-29.0.1.zip
|
||||
bfca8eab60c90e12868d49d68ba66aafe4387466236c562e4c172e90ca53c655 PkgWebFont-Unhinted-IosevkaTermSS08-29.0.1.zip
|
||||
1917741b3bc1b703d790c1f4120f195c502d208beef32b26d0c9e68b3e3810cc PkgWebFont-Unhinted-IosevkaTermSS09-29.0.1.zip
|
||||
577fe7376c852ac4b291d05c9ebc8fd3957f86a22e5357fca6417b1358e6e72e PkgWebFont-Unhinted-IosevkaTermSS10-29.0.1.zip
|
||||
775733b806b5921b49f42ecfc88f664da3468767f2e6b0f1c3b6a597c023e98a PkgWebFont-Unhinted-IosevkaTermSS11-29.0.1.zip
|
||||
a290ed889cc10770ed2332d51d9a1cdc0fb6623d2d8ac9b191a5216585a23dfe PkgWebFont-Unhinted-IosevkaTermSS12-29.0.1.zip
|
||||
d32b7b0e065c101d725aa63ea9ce352fe37d8ab08522e3d6b73a66359f9980e1 PkgWebFont-Unhinted-IosevkaTermSS13-29.0.1.zip
|
||||
8bff1074fa3d28f423fd3af602744944d8e381ce0556f5688b848a52c4bd2e23 PkgWebFont-Unhinted-IosevkaTermSS14-29.0.1.zip
|
||||
843688dd223691f2ec3f79733c92eab7fdfc9da5bde8ae8e0b775f5ff82bd598 PkgWebFont-Unhinted-IosevkaTermSS15-29.0.1.zip
|
||||
8f4a1eb9ab0873edc06bef64eac38000df67cb83ae9863808520a24a2844c526 PkgWebFont-Unhinted-IosevkaTermSS16-29.0.1.zip
|
||||
226f28b5eb8bdc800ef4952960107f0e53ee985a497eb6c636fbe1169e208200 PkgWebFont-Unhinted-IosevkaTermSS17-29.0.1.zip
|
||||
7513d7ccfea28373b8bf78908e97d60987ac33811d94351b19acadc526acaeb4 PkgWebFont-Unhinted-IosevkaTermSS18-29.0.1.zip
|
||||
175a01bd33855ed881d7a31e4faed4ef1c0d1719cda16d55c7cea1fd125103de PkgWebFont-Unhinted-IosevkaTermSlab-29.0.1.zip
|
||||
e99479d0a12b4f1162ad12860b66adb17b05b106f0714ef2e0bc259bd5dd53a4 SuperTTC-Iosevka-29.0.1.zip
|
||||
a38aabc72f9e803320eaecd32c0f5d80811aecca105afbede255a6109cfee058 SuperTTC-IosevkaAile-29.0.1.zip
|
||||
39b86add3c935b41e012302cfa74a41e2731bf649f2cbabf161526b8aebc14a7 SuperTTC-IosevkaCurly-29.0.1.zip
|
||||
96ac334514fa9e38c63afe9879d19a1a0e7ca8223f34d7182e9c55279fb993f1 SuperTTC-IosevkaCurlySlab-29.0.1.zip
|
||||
069ed060a9608059b91c76e31f5de8f8ccbc794ba3c32de8d426f3e97a56fe71 SuperTTC-IosevkaEtoile-29.0.1.zip
|
||||
a0298fa108bd306c0a4dc776c554a0775318b112ac402ad1261542d187134ae9 SuperTTC-IosevkaSS01-29.0.1.zip
|
||||
b22762e92f32b127f9f9b6c8d9270ce0d40365db84c67d85af88eb64281cfd7e SuperTTC-IosevkaSS02-29.0.1.zip
|
||||
171754b4871009afcffc7c9edf6b169d7608db2176d87360b1766efcdae7cac9 SuperTTC-IosevkaSS03-29.0.1.zip
|
||||
30f14880a2773171a2d20081490949782f0bb93148b1d6311e9b407d9ac076e9 SuperTTC-IosevkaSS04-29.0.1.zip
|
||||
afc9985bb17317aeda0cc388ea2962ae64f4d8bd9f6a6d159527cf23346c790b SuperTTC-IosevkaSS05-29.0.1.zip
|
||||
f976adbee1343b75b87b1f52dd44b95411eff74872fd46add6679303ece2f682 SuperTTC-IosevkaSS06-29.0.1.zip
|
||||
435a4720bede891637de907e465ae1f92721e0bf9ad9cca5a7e01ca247adfc1a SuperTTC-IosevkaSS07-29.0.1.zip
|
||||
9f42d6e4b4bd3320b3fea574cb4c180aa8a1ac45334ef9fb1f80224885e73e17 SuperTTC-IosevkaSS08-29.0.1.zip
|
||||
2ce8e76384cbd790743fd9e61fc77841faed5eae3de9f212bfb7c29a3928bce0 SuperTTC-IosevkaSS09-29.0.1.zip
|
||||
e50b100f5e2cd199482b851e0852d46a6d7c16401849afbbd645e581b8669dfc SuperTTC-IosevkaSS10-29.0.1.zip
|
||||
203628109baf3dcc3d401dd917551b2a0a0250ae01519bc3f24c2d06d2bf15b3 SuperTTC-IosevkaSS11-29.0.1.zip
|
||||
11114a2623f913cabade3ee9a96bd983584c8e44a9f7ebd46b1b30894aab58bf SuperTTC-IosevkaSS12-29.0.1.zip
|
||||
7c4420a3a8aa951b841f986f1567381bd16d9d1d341fb42df9316a9fb99d1806 SuperTTC-IosevkaSS13-29.0.1.zip
|
||||
2fb73aaff3a3a7bb96b149a274a12939dd0f8f15dd06d6b754260caba9c24f07 SuperTTC-IosevkaSS14-29.0.1.zip
|
||||
e6c496dc157d0f1bbe92e1dbeeaf5988b9b9c8870078d4cf50fca364391f6121 SuperTTC-IosevkaSS15-29.0.1.zip
|
||||
6f140f7f4f916f217fdb2e18c38889aab3b281f7fe9d647475e0ee1b1aa41e10 SuperTTC-IosevkaSS16-29.0.1.zip
|
||||
7062e715f22bdb700f23ce336bf31de4bf64f696c6577bad7e851eaabaa31327 SuperTTC-IosevkaSS17-29.0.1.zip
|
||||
f86c9adc79edb25cd3fdfec9b9f7f830e80b8671b49bef0c0dc8a5a9cd864bba SuperTTC-IosevkaSS18-29.0.1.zip
|
||||
2b0db9c4844034e4f1492e3110b5e43426365eb5264838a8dc40cc94e3647141 SuperTTC-IosevkaSlab-29.0.1.zip
|
||||
1367061f976cea2f32777b946985667cc6f05ed3a2bdba77fe1e4ed976c7ed2f SuperTTC-SGr-Iosevka-29.0.1.zip
|
||||
6f6cfb1d6c056181310badbb76a81e83646b493d599bfa070f55fd23945a7921 SuperTTC-SGr-IosevkaCurly-29.0.1.zip
|
||||
0d2d4ca0629feaca6ae390b8af6af34424b84d12bfe524d5a1078da6f7f051a7 SuperTTC-SGr-IosevkaCurlySlab-29.0.1.zip
|
||||
683622e573bce9389ec1ca2b258ea31078a36e967d2b66bd6d856ed0487ab287 SuperTTC-SGr-IosevkaFixed-29.0.1.zip
|
||||
6be95b25a8ae99200b13687d2e61d5de4502e7cd80ff7babe36ca6f56fc9498b SuperTTC-SGr-IosevkaFixedCurly-29.0.1.zip
|
||||
aac94df6d848ce32324a1752e967418a988cdb5fb1f637024ac33a4b6f8cf71d SuperTTC-SGr-IosevkaFixedCurlySlab-29.0.1.zip
|
||||
b44f4ce31979c171581993bcdc808ed9632117143d61ab2fb7991f6058918f31 SuperTTC-SGr-IosevkaFixedSS01-29.0.1.zip
|
||||
64b4536b07b69b05b40021e65892b596ee6e7e77d04e5249176a26a7c8f0af62 SuperTTC-SGr-IosevkaFixedSS02-29.0.1.zip
|
||||
f00cfdd4d430cfa576fac64ed50ed64c63aa48a9e8dc968374b854c579dd92e8 SuperTTC-SGr-IosevkaFixedSS03-29.0.1.zip
|
||||
9cdc334eef68c1bc7d3e73e7a3976e494e08e0dcce3f986c282344491aabdcea SuperTTC-SGr-IosevkaFixedSS04-29.0.1.zip
|
||||
876f7c4f84ae05b277ac4e5615aa46a9d3ff01ee15bbc67153e0f9dbc9c8fc3b SuperTTC-SGr-IosevkaFixedSS05-29.0.1.zip
|
||||
d28e920c5d3dc828d6f0e37a16406e07fe1b6029004c4ee3c7241dbb56bc7257 SuperTTC-SGr-IosevkaFixedSS06-29.0.1.zip
|
||||
bd6968cae9435d9f71236c42ac49f80d2bce829c00628e9e3e21afc9233355aa SuperTTC-SGr-IosevkaFixedSS07-29.0.1.zip
|
||||
ab9a5a08297d4414ddfd4f6aef122815a2728aed24df28e16ef1a3cca59755c0 SuperTTC-SGr-IosevkaFixedSS08-29.0.1.zip
|
||||
bf2ec73df5cc78c56776ae8bc01c04c827b1883697fcfe4b4add1951821ee293 SuperTTC-SGr-IosevkaFixedSS09-29.0.1.zip
|
||||
2a17031088c7e16128fb2812025253a06882182114db85834a5bad8e492dc54b SuperTTC-SGr-IosevkaFixedSS10-29.0.1.zip
|
||||
9595ddd6afd90db9415f102c6dd39d755dbc81d6d23ea0be12ad358fe1b9dd59 SuperTTC-SGr-IosevkaFixedSS11-29.0.1.zip
|
||||
ac9feeefee40a5a60d3c92b08f64728f7a4490a543a952dca7b28c813da59f5e SuperTTC-SGr-IosevkaFixedSS12-29.0.1.zip
|
||||
bae09760fce388eb7a6ec2fd1f5521b644bc91181b67736dade13ec9539acb7f SuperTTC-SGr-IosevkaFixedSS13-29.0.1.zip
|
||||
02d7e2bb41bbcc8d06aa9d9b3333dcac660860d577547ba1483c7ceeb1e8c916 SuperTTC-SGr-IosevkaFixedSS14-29.0.1.zip
|
||||
c5a84e3a7af0d0cdf7c4f706c5342643a7e7b72d2493fde6788ebd0444d3a719 SuperTTC-SGr-IosevkaFixedSS15-29.0.1.zip
|
||||
7ea9fe107aa5a12e3ffc98c76eb6a4c292d071ec767a94389c4f46bb5f729fa3 SuperTTC-SGr-IosevkaFixedSS16-29.0.1.zip
|
||||
8cf25ca77b565f3db50277941985db7827da1747ff24ccd49618fe6ac8f3c0bb SuperTTC-SGr-IosevkaFixedSS17-29.0.1.zip
|
||||
98b536300b5432b8fd1f011615a4225bb6fb547a2dbbdaadc6b54fad2080d910 SuperTTC-SGr-IosevkaFixedSS18-29.0.1.zip
|
||||
1c85484b707cf20fc836c94213a1593c7f0995df84bc9b8caf7a62a8947d77de SuperTTC-SGr-IosevkaFixedSlab-29.0.1.zip
|
||||
4b8bca21ab121442e14174f5491bd247eee3c9df3cf070f001a7f3d758cb2873 SuperTTC-SGr-IosevkaSS01-29.0.1.zip
|
||||
5a53c1a5c66ba3d7961c6e2a37b4c562098fff0803d0f2f3541375c7b1a82565 SuperTTC-SGr-IosevkaSS02-29.0.1.zip
|
||||
c98fef6b5e308661612aa628bfd79018f302733e43dc1f8a48fabf636906678f SuperTTC-SGr-IosevkaSS03-29.0.1.zip
|
||||
77b7ac68a858cccaffc3019c472836752186bf5bc020077a583e5719e90fba7d SuperTTC-SGr-IosevkaSS04-29.0.1.zip
|
||||
dfcaa93e99f8648232ed49cd04afca199814ce67887461f9bddee4084f06a79e SuperTTC-SGr-IosevkaSS05-29.0.1.zip
|
||||
c98fdb611e02603aa6df0f93d2ee9e454927b5c2f313e8f5cdef76a677e87268 SuperTTC-SGr-IosevkaSS06-29.0.1.zip
|
||||
01cd676b5aa2a187d89c18c9af1cd52dc3564369f2c7dfb65e199d996ab6e7fd SuperTTC-SGr-IosevkaSS07-29.0.1.zip
|
||||
7ddb89d8a74cb85efd1270bf4ee97f84ea12710ad5c4ec5eca036b2dc5b76721 SuperTTC-SGr-IosevkaSS08-29.0.1.zip
|
||||
c1e09da428d23c158feee4d395b8367feffb0a917e97942146a9d8219a3be44f SuperTTC-SGr-IosevkaSS09-29.0.1.zip
|
||||
af0ba95aac02086c6806fa731f3c592052d3d89074d51479f7a488dcfe906746 SuperTTC-SGr-IosevkaSS10-29.0.1.zip
|
||||
c34aa1784c753d1a0e004cbdbfa88cbe64376a70c407fd5c3c4b59e33c981e45 SuperTTC-SGr-IosevkaSS11-29.0.1.zip
|
||||
1dd7615b2d1648d1d5dc3fac4355114122e134f23b20b85e81e4947287bf983d SuperTTC-SGr-IosevkaSS12-29.0.1.zip
|
||||
ef2f9e43ccbd3fd47a1082d3f456437a88f8278b3e76cdcd1975fc1abe388d0a SuperTTC-SGr-IosevkaSS13-29.0.1.zip
|
||||
2f157762472449429efb26df607dfce1005b3ef4036e57ce40238e95b9c0699c SuperTTC-SGr-IosevkaSS14-29.0.1.zip
|
||||
247d3ab10885e139ada7e791e7fab85069ee36af13859cdc0e731a1b2298bdac SuperTTC-SGr-IosevkaSS15-29.0.1.zip
|
||||
cf031d6d4a9239b3812b7aa74cf682a61cf358a47488cbb1f5d9b80a5c3dab87 SuperTTC-SGr-IosevkaSS16-29.0.1.zip
|
||||
0a21a8d1b68b914f8a8e571ec852bca6069d45ecdc028e4149ac80da4789d6b1 SuperTTC-SGr-IosevkaSS17-29.0.1.zip
|
||||
d1abd7ece8b0cf0da0897c5cf948ed68b0e79ca95b66bf5b31e14934607916cd SuperTTC-SGr-IosevkaSS18-29.0.1.zip
|
||||
3d69b05d8d9c482e1c6c437c7e1c3650aeb23d817130521c8630d0ba78fa9fb9 SuperTTC-SGr-IosevkaSlab-29.0.1.zip
|
||||
1af37a5234cdae8ec6ee5901c2ea5e616ea2c72417d1a583bdeee5372c8ed0e8 SuperTTC-SGr-IosevkaTerm-29.0.1.zip
|
||||
eb019d91a746b41a7adce7410e34f3904edad472888e354b23eba31ab772edab SuperTTC-SGr-IosevkaTermCurly-29.0.1.zip
|
||||
02ae220c0f7ca3248a593e7dbc0531510083daad7a3a9e1b9b5dfbe32920612e SuperTTC-SGr-IosevkaTermCurlySlab-29.0.1.zip
|
||||
dca28a6146b6c47036b6959a96a0b144f2ff919346e5920488b155585c21b4f7 SuperTTC-SGr-IosevkaTermSS01-29.0.1.zip
|
||||
10a5739b9ee62bbbad856e81d87ef5b61d9b4471bc932e96db62bbfb820646cf SuperTTC-SGr-IosevkaTermSS02-29.0.1.zip
|
||||
7766eb93e3f440d5ece37a5bbe14a53654d01cbff17cc58a0c8a2e970087e493 SuperTTC-SGr-IosevkaTermSS03-29.0.1.zip
|
||||
262a9e3c9a01bc6ca0f8b34c67d0bbfe2ed1dbe1884eed1121f7281f03a20ef0 SuperTTC-SGr-IosevkaTermSS04-29.0.1.zip
|
||||
e8eb1ae2f04689879c6875fa06ef6ae05f0c9a40851a3509daa9b8bd125fe763 SuperTTC-SGr-IosevkaTermSS05-29.0.1.zip
|
||||
3a92554dd68a568ca9aa79ce5d64f3918c15967eae9b031cc87590db75c8b0fa SuperTTC-SGr-IosevkaTermSS06-29.0.1.zip
|
||||
cbda8bc1baa51249bd92fb5a6e05c287eccd7dbccc7fea8fa52a19288d5a2d59 SuperTTC-SGr-IosevkaTermSS07-29.0.1.zip
|
||||
a9320229237b8a32fe820104e8c1f9a789f94ddf6c8eb8fbf71b0cb4ed5ec2fb SuperTTC-SGr-IosevkaTermSS08-29.0.1.zip
|
||||
d7fd8b8ba7068dd97aa244a2ad549ab4abe91596ba2a19fa5da72cbd02a5fb9f SuperTTC-SGr-IosevkaTermSS09-29.0.1.zip
|
||||
74bd84348a42a70ba5a8b6af58f1e250b445089c09a2303b5f7faf2dc77667c5 SuperTTC-SGr-IosevkaTermSS10-29.0.1.zip
|
||||
67e4300995a6b64ee42634b6abaf7cebb0b0d89f264003edcc0dcfbe3255b56e SuperTTC-SGr-IosevkaTermSS11-29.0.1.zip
|
||||
d4a97e33f291a403bd47c8c1c6d3198695a8e080758f39c37a090a68df3c0290 SuperTTC-SGr-IosevkaTermSS12-29.0.1.zip
|
||||
66073d626504428b1fb7e476dfba6309a87bbd043ab33a83d1d27e908b694d4f SuperTTC-SGr-IosevkaTermSS13-29.0.1.zip
|
||||
c71b6b39992d52af55b84de5df0f74be4b4d4a763cfb2c05133fac015ac26964 SuperTTC-SGr-IosevkaTermSS14-29.0.1.zip
|
||||
e1f595a20d8e6754ccefb8c72cffbf9ab96ce83db370c5944be82bedbeaa4a53 SuperTTC-SGr-IosevkaTermSS15-29.0.1.zip
|
||||
5d23d1e50a31dffb82f4951a13ee128750bbb8422fc49c9bdc6485f7d17f1c18 SuperTTC-SGr-IosevkaTermSS16-29.0.1.zip
|
||||
0e3720747a551d41730e3f3cb7d105312b4f51c958d46e46a4145ff6e640af99 SuperTTC-SGr-IosevkaTermSS17-29.0.1.zip
|
||||
d671653da8e07eab160c763b9f1b81002257a1b05229ba6bd0563d8b4f2cfeae SuperTTC-SGr-IosevkaTermSS18-29.0.1.zip
|
||||
fceb935be0d1f96186dc36774061b45c46a90fd72b70697ad4241a18b76c6a12 SuperTTC-SGr-IosevkaTermSlab-29.0.1.zip
|
8389
package-lock.json
generated
8389
package-lock.json
generated
File diff suppressed because it is too large
Load diff
64
package.json
64
package.json
|
@ -1,33 +1,35 @@
|
|||
{
|
||||
"name": "@iosevka/monorepo",
|
||||
"version": "29.0.1",
|
||||
"workspaces": [
|
||||
"packages/*",
|
||||
"tools/*"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "verda -f verdafile.mjs",
|
||||
"bump-ver": "node tools/misc/src/update-package-json-version.mjs && npm install && node tools/misc/src/generate-ttfa-ranges.mjs",
|
||||
"clean": "verda -f verdafile.mjs clean",
|
||||
"lint": "eslint . --ext .mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"otb-ttc-bundle": "^1.7.3",
|
||||
"@iarna/toml": "^2.2.5",
|
||||
"deep-equal": "^2.2.3",
|
||||
"semver": "^7.6.0",
|
||||
"uuid": "^9.0.1",
|
||||
"verda": "^1.11.2",
|
||||
"which": "^4.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"patel": "^0.40.0",
|
||||
"prettier": "^3.2.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16.0.0"
|
||||
}
|
||||
"name": "@iosevka/monorepo",
|
||||
"version": "29.0.2",
|
||||
"workspaces": [
|
||||
"packages/*",
|
||||
"tools/*"
|
||||
],
|
||||
"scripts": {
|
||||
"build": "verda -f verdafile.mjs",
|
||||
"bump-ver": "node tools/misc/src/update-package-json-version.mjs && npm install && node tools/misc/src/generate-ttfa-ranges.mjs",
|
||||
"clean": "verda -f verdafile.mjs clean",
|
||||
"lint": "eslint . --ext .mjs",
|
||||
"update-release-sha-file": "node tools/misc/src/update-release-sha-file.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@iarna/toml": "^2.2.5",
|
||||
"deep-equal": "^2.2.3",
|
||||
"otb-ttc-bundle": "^1.7.3",
|
||||
"semver": "^7.6.0",
|
||||
"uuid": "^9.0.1",
|
||||
"verda": "^1.12.1",
|
||||
"which": "^4.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"glob": "^10.3.10",
|
||||
"patel": "^0.40.0",
|
||||
"prettier": "^3.2.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16.0.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@iosevka/font-glyphs",
|
||||
"version": "29.0.1",
|
||||
"version": "29.0.2",
|
||||
"private": true,
|
||||
"exports": {
|
||||
".": "./src/index.mjs",
|
||||
|
@ -8,11 +8,11 @@
|
|||
"./unicode-knowledge": "./src/meta/unicode-knowledge.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@iosevka/font-kits": "29.0.1",
|
||||
"@iosevka/geometry": "29.0.1",
|
||||
"@iosevka/geometry-cache": "29.0.1",
|
||||
"@iosevka/glyph": "29.0.1",
|
||||
"@iosevka/util": "29.0.1",
|
||||
"@iosevka/font-kits": "29.0.2",
|
||||
"@iosevka/geometry": "29.0.2",
|
||||
"@iosevka/geometry-cache": "29.0.2",
|
||||
"@iosevka/glyph": "29.0.2",
|
||||
"@iosevka/util": "29.0.2",
|
||||
"typo-geom": "^0.15.1"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,7 +52,7 @@ glyph-block Letter-Cyrillic-Yeri : begin
|
|||
local-parameter : jut -- Jut
|
||||
local-parameter : pBar -- DefaultBarPos
|
||||
local-parameter : yStart -- top
|
||||
|
||||
|
||||
include : CornerCommon.apply null $-flex-arguments
|
||||
if SLAB : begin
|
||||
include : tagged 'serifYeriLB' : HSerif.lb left 0 (jut - [HSwToV : 0.5 * stroke]) stroke
|
||||
|
@ -70,7 +70,7 @@ glyph-block Letter-Cyrillic-Yeri : begin
|
|||
include : CornerCommon.apply null $-flex-arguments
|
||||
if SLAB : begin
|
||||
include : tagged 'serifYeriLT' : HSerif.lt left top (jut - [HSwToV : 0.5 * stroke]) stroke
|
||||
|
||||
|
||||
export : define flex-params [AutoItalicShape] : begin
|
||||
if para.isItalic
|
||||
: then : ItalicShape.apply null $-flex-arguments
|
||||
|
|
|
@ -84,7 +84,7 @@ glyph-block Letter-Latin-Lower-R : begin
|
|||
set-base-anchor 'palatalHookPos' (xBar + [PalatalHook.adviceGap Stroke]) bottom
|
||||
currentGlyph.copyBaseAnchorIfAbsent 'leaningAbove' 'above'
|
||||
currentGlyph.copyBaseAnchorIfAbsent 'leaningBelow' 'below'
|
||||
|
||||
|
||||
export : define [setTurnedMarks doTopSerif top bottom] : glyph-proc
|
||||
include : LeaningAnchor.Above.VBar.l (df.width - xBar)
|
||||
include : LeaningAnchor.Below.Hook
|
||||
|
@ -249,7 +249,7 @@ glyph-block Letter-Latin-Lower-R : begin
|
|||
|
||||
define [object xBar] : RDim df mode
|
||||
include : RetroflexHook.rExt xBar 0
|
||||
|
||||
|
||||
create-glyph "turnr.\(suffix)" : glyph-proc
|
||||
include [refer-glyph "r.\(suffix)"] AS_BASE ALSO_METRICS
|
||||
include : FlipAround df.middle (XH / 2)
|
||||
|
@ -265,7 +265,7 @@ glyph-block Letter-Latin-Lower-R : begin
|
|||
define [object xBar setTurnedMarks] : RDim df mode
|
||||
include : setTurnedMarks doTS XH 0
|
||||
include : RetroflexHook.lExt (df.rightSB - xBar + df.leftSB) 0
|
||||
|
||||
|
||||
create-glyph "turnrLongLeg.\(suffix)" : glyph-proc
|
||||
include [refer-glyph "rLongLeg.\(suffix)"] AS_BASE ALSO_METRICS
|
||||
include : FlipAround df.middle (XH / 2)
|
||||
|
|
|
@ -133,6 +133,17 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1
|
|||
if RTh : include : UpperRightHalfMark
|
||||
if RBh : include : LowerRightHalfMark
|
||||
|
||||
create-glyph [MangleName 'heavyWhiteSquareUpperHalf'] [MangleUnicode 0x1CE03] : glyph-proc
|
||||
set-width Geom.Width
|
||||
include : intersection
|
||||
UpperHalfMask
|
||||
refer-glyph : MangleName 'heavyWhiteSquare'
|
||||
create-glyph [MangleName 'heavyWhiteSquareLowerHalf'] [MangleUnicode 0x1CE04] : glyph-proc
|
||||
set-width Geom.Width
|
||||
include : intersection
|
||||
LowerHalfMask
|
||||
refer-glyph : MangleName 'heavyWhiteSquare'
|
||||
|
||||
do "Partial diamond"
|
||||
define diamondParts : list
|
||||
list 0x2B16 1 1 0 0
|
||||
|
@ -207,8 +218,8 @@ glyph-block Symbol-Geometric-Masked : for-width-kinds WideWidth1
|
|||
refer-glyph [MangleName frame]
|
||||
if L [HBar.m (Geom.MidX - Geom.Size + hh) (Geom.MidX + hh) Geom.MidY s] [glyph-proc]
|
||||
if R [HBar.m (Geom.MidX + Geom.Size - hh) (Geom.MidX - hh) Geom.MidY s] [glyph-proc]
|
||||
if T [VBar.m Geom.MidX (Geom.MidY + Geom.Size - hv) (Geom.MidY - hv) s] [glyph-proc]
|
||||
if B [VBar.m Geom.MidX (Geom.MidY - Geom.Size + hv) (Geom.MidY + hv) s] [glyph-proc]
|
||||
if T [VBar.m Geom.MidX (Geom.MidY + Geom.Size - hv) (Geom.MidY - hv) s] [glyph-proc]
|
||||
if B [VBar.m Geom.MidX (Geom.MidY - Geom.Size + hv) (Geom.MidY + hv) s] [glyph-proc]
|
||||
|
||||
do "Three-Dimensional Arrow head"
|
||||
define arrowHeadParts : list
|
||||
|
|
|
@ -169,6 +169,7 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1
|
|||
StdWhiteContainingBlackShape SquareShape 'whiteSquareWithCenter' 0x25A3
|
||||
StdWhiteContainingBlackShape SquareShape 'whiteSquareContainingBlackVerySmallSquare' 0x1F794 Size.TinyInner
|
||||
StdWhiteContainingBlackShape SquareShape 'whiteSquareContainingBlackMediumSquare' 0x1F795 Size.MediumInner
|
||||
StdWhiteContainingBlackShape SquareShape 'heavyWhiteSquareContainingBlackMediumSquare' 0x1CE05 : Object.assign Size.TinyInner {.sw [UnicodeWeightGrade 9 Geom.Scalar]}
|
||||
|
||||
StdGeomTargetShape SquareShape 'squareTarget' 0x1F796
|
||||
|
||||
|
|
|
@ -13,23 +13,26 @@ glyph-block Symbol-Geometric-Shaded : for-width-kinds WideWidth1
|
|||
define Geom : GeometricDim MosaicUnitWidth MosaicWidth
|
||||
define Size : GeometricSizes Geom
|
||||
|
||||
define [HShadeShape] : begin
|
||||
define lineWidth : Math.min GeometryStroke ((Geom.Size * 2 - GeometryStroke * 2) * 1 / 11)
|
||||
define top : Geom.MidY + Geom.Size - GeometryStroke + lineWidth / 2
|
||||
define bot : Geom.MidY - (top - Geom.MidY)
|
||||
return : union
|
||||
dispiro
|
||||
widths.center lineWidth
|
||||
flat Geom.Left [mix top bot 0.25] [heading Rightward]
|
||||
curl Geom.Right [mix top bot 0.25] [heading Rightward]
|
||||
dispiro
|
||||
widths.center lineWidth
|
||||
flat Geom.Left [mix top bot 0.5] [heading Rightward]
|
||||
curl Geom.Right [mix top bot 0.5] [heading Rightward]
|
||||
dispiro
|
||||
widths.center lineWidth
|
||||
flat Geom.Left [mix top bot 0.75] [heading Rightward]
|
||||
curl Geom.Right [mix top bot 0.75] [heading Rightward]
|
||||
define boxShadeSw : Math.min GeometryStroke ((Geom.Size * 2 - GeometryStroke * 2) * 1 / 11)
|
||||
define boxBarSw : Math.min GeometryStroke [AdviceStroke 5 Geom.Scalar]
|
||||
define boxTop : Geom.MidY + Geom.Size - GeometryStroke + boxShadeSw / 2
|
||||
define boxBot : Geom.MidY - (boxTop - Geom.MidY)
|
||||
define boxRight : Geom.MidX + Geom.Size - GeometryStroke + boxShadeSw / 2
|
||||
define boxLeft : Geom.MidX - (boxRight - Geom.MidX)
|
||||
|
||||
define [HBoxShadeShape] : union
|
||||
dispiro
|
||||
widths.center boxShadeSw
|
||||
flat Geom.Left [mix boxTop boxBot 0.25] [heading Rightward]
|
||||
curl Geom.Right [mix boxTop boxBot 0.25] [heading Rightward]
|
||||
dispiro
|
||||
widths.center boxShadeSw
|
||||
flat Geom.Left [mix boxTop boxBot 0.5] [heading Rightward]
|
||||
curl Geom.Right [mix boxTop boxBot 0.5] [heading Rightward]
|
||||
dispiro
|
||||
widths.center boxShadeSw
|
||||
flat Geom.Left [mix boxTop boxBot 0.75] [heading Rightward]
|
||||
curl Geom.Right [mix boxTop boxBot 0.75] [heading Rightward]
|
||||
|
||||
create-glyph [MangleName 'hShadeSquare'] [MangleUnicode 0x25A4] : glyph-proc
|
||||
set-width Geom.Width
|
||||
|
@ -37,35 +40,27 @@ glyph-block Symbol-Geometric-Shaded : for-width-kinds WideWidth1
|
|||
refer-glyph : MangleName 'whiteSquare'
|
||||
intersection
|
||||
refer-glyph : MangleName 'blackSquare'
|
||||
HShadeShape
|
||||
HBoxShadeShape
|
||||
|
||||
define [VShadeShape] : begin
|
||||
define lineWidth : Math.min GeometryStroke ((Geom.Size * 2 - GeometryStroke * 2) * 1 / 11)
|
||||
define r : Geom.Width / 2 + Geom.Size - GeometryStroke + lineWidth / 2
|
||||
define l : Geom.Width / 2 - (r - Geom.Width / 2)
|
||||
return : union
|
||||
dispiro
|
||||
widths.center lineWidth
|
||||
flat [mix l r 0.25] Geom.Top [heading Downward]
|
||||
curl [mix l r 0.25] Geom.Bot [heading Downward]
|
||||
dispiro
|
||||
widths.center lineWidth
|
||||
flat [mix l r 0.5] Geom.Top [heading Downward]
|
||||
curl [mix l r 0.5] Geom.Bot [heading Downward]
|
||||
dispiro
|
||||
widths.center lineWidth
|
||||
flat [mix l r 0.75] Geom.Top [heading Downward]
|
||||
curl [mix l r 0.75] Geom.Bot [heading Downward]
|
||||
define [VBoxShadeShape] : union
|
||||
dispiro
|
||||
widths.center boxShadeSw
|
||||
flat [mix boxLeft boxRight 0.25] Geom.Top [heading Downward]
|
||||
curl [mix boxLeft boxRight 0.25] Geom.Bot [heading Downward]
|
||||
dispiro
|
||||
widths.center boxShadeSw
|
||||
flat [mix boxLeft boxRight 0.5] Geom.Top [heading Downward]
|
||||
curl [mix boxLeft boxRight 0.5] Geom.Bot [heading Downward]
|
||||
dispiro
|
||||
widths.center boxShadeSw
|
||||
flat [mix boxLeft boxRight 0.75] Geom.Top [heading Downward]
|
||||
curl [mix boxLeft boxRight 0.75] Geom.Bot [heading Downward]
|
||||
|
||||
define [VBar.mShadeShape] : begin
|
||||
define lineWidth : Math.min GeometryStroke [AdviceStroke 5 Geom.Scalar]
|
||||
define r : Geom.Width / 2 + Geom.Size - GeometryStroke + lineWidth / 2
|
||||
define l : Geom.Width / 2 - (r - Geom.Width / 2)
|
||||
return : union
|
||||
dispiro
|
||||
widths.center lineWidth
|
||||
flat [mix l r 0.5] Geom.Top [heading Downward]
|
||||
curl [mix l r 0.5] Geom.Bot [heading Downward]
|
||||
define [VBar.mShadeShape] : union
|
||||
dispiro
|
||||
widths.center boxBarSw
|
||||
flat Geom.MidX Geom.Top [heading Downward]
|
||||
curl Geom.MidX Geom.Bot [heading Downward]
|
||||
|
||||
create-glyph [MangleName 'vShadeSquare'] [MangleUnicode 0x25A5] : glyph-proc
|
||||
set-width Geom.Width
|
||||
|
@ -73,7 +68,7 @@ glyph-block Symbol-Geometric-Shaded : for-width-kinds WideWidth1
|
|||
refer-glyph : MangleName 'whiteSquare'
|
||||
intersection
|
||||
refer-glyph : MangleName 'blackSquare'
|
||||
VShadeShape
|
||||
VBoxShadeShape
|
||||
|
||||
create-glyph [MangleName 'vBarSquare'] [MangleUnicode 0x25EB] : glyph-proc
|
||||
set-width Geom.Width
|
||||
|
@ -89,25 +84,17 @@ glyph-block Symbol-Geometric-Shaded : for-width-kinds WideWidth1
|
|||
refer-glyph : MangleName 'hShadeSquare'
|
||||
refer-glyph : MangleName 'vShadeSquare'
|
||||
|
||||
define [DDiagShadeShape] : begin
|
||||
define lineWidth : Math.min GeometryStroke ((Geom.Size * 2 - GeometryStroke * 2) * 1 / 11)
|
||||
define top : Geom.MidY + Geom.Size
|
||||
define bot : Geom.MidY - (top - Geom.MidY)
|
||||
return : glyph-proc
|
||||
foreach [j : range (-10) till 10] : include : dispiro
|
||||
widths.center lineWidth
|
||||
flat Geom.Left [mix top bot (j / 4)] [heading Rightward]
|
||||
curl Geom.Right [mix top bot (j / 4 + 1)] [heading Rightward]
|
||||
define [DDiagBoxShadeShape] : glyph-proc
|
||||
foreach [j : range (-10) till 10] : include : dispiro
|
||||
widths.center boxShadeSw
|
||||
flat Geom.Left [mix Geom.Top Geom.Bot (j / 4)] [heading Rightward]
|
||||
curl Geom.Right [mix Geom.Top Geom.Bot (j / 4 + 1)] [heading Rightward]
|
||||
|
||||
define [UDiagShadeShape] : begin
|
||||
define lineWidth : Math.min GeometryStroke ((Geom.Size * 2 - GeometryStroke * 2) * 1 / 11)
|
||||
define top : Geom.MidY + Geom.Size
|
||||
define bot : Geom.MidY - (top - Geom.MidY)
|
||||
return : glyph-proc
|
||||
foreach [j : range (-10) till 10] : include : dispiro
|
||||
widths.center lineWidth
|
||||
flat Geom.Left [mix top bot (j / 4)] [heading Rightward]
|
||||
curl Geom.Right [mix top bot (j / 4 - 1)] [heading Rightward]
|
||||
define [UDiagBoxShadeShape] : glyph-proc
|
||||
foreach [j : range (-10) till 10] : include : dispiro
|
||||
widths.center boxShadeSw
|
||||
flat Geom.Left [mix Geom.Top Geom.Bot (j / 4)] [heading Rightward]
|
||||
curl Geom.Right [mix Geom.Top Geom.Bot (j / 4 - 1)] [heading Rightward]
|
||||
|
||||
create-glyph [MangleName 'dDiagShadeSquare'] [MangleUnicode 0x25A7] : glyph-proc
|
||||
set-width Geom.Width
|
||||
|
@ -115,7 +102,7 @@ glyph-block Symbol-Geometric-Shaded : for-width-kinds WideWidth1
|
|||
refer-glyph : MangleName 'whiteSquare'
|
||||
intersection
|
||||
refer-glyph : MangleName 'blackSquare'
|
||||
DDiagShadeShape
|
||||
DDiagBoxShadeShape
|
||||
|
||||
create-glyph [MangleName 'uDiagShadeSquare'] [MangleUnicode 0x25A8] : glyph-proc
|
||||
set-width Geom.Width
|
||||
|
@ -123,7 +110,7 @@ glyph-block Symbol-Geometric-Shaded : for-width-kinds WideWidth1
|
|||
refer-glyph : MangleName 'whiteSquare'
|
||||
intersection
|
||||
refer-glyph : MangleName 'blackSquare'
|
||||
UDiagShadeShape
|
||||
UDiagBoxShadeShape
|
||||
|
||||
create-glyph [MangleName 'udDiagShadeSquare'] [MangleUnicode 0x25A9] : glyph-proc
|
||||
set-width Geom.Width
|
||||
|
@ -135,7 +122,7 @@ glyph-block Symbol-Geometric-Shaded : for-width-kinds WideWidth1
|
|||
set-width Geom.Width
|
||||
include : union
|
||||
refer-glyph : MangleName 'whiteCircle'
|
||||
intersection [refer-glyph : MangleName 'blackCircleO'] [VShadeShape]
|
||||
intersection [refer-glyph : MangleName 'blackCircleO'] [VBoxShadeShape]
|
||||
|
||||
glyph-block Symbol-Geometric-Shaded-Narrow : for-width-kinds WideWidth4
|
||||
glyph-block-import CommonShapes
|
||||
|
|
|
@ -31,14 +31,14 @@ glyph-block Symbol-Geometric-Square-Corners : for-width-kinds WideWidth1
|
|||
refer-glyph : MangleName 'blackSquare'
|
||||
union
|
||||
intersection [MaskBelow (Geom.MidY + Geom.Size / 3)] [MaskAbove (Geom.MidY - Geom.Size / 3)]
|
||||
intersection [MaskLeft (Geom.MidX + Geom.Size / 3)] [MaskRight (Geom.MidX - Geom.Size / 3)]
|
||||
intersection [MaskLeft (Geom.MidX + Geom.Size / 3)] [MaskRight (Geom.MidX - Geom.Size / 3)]
|
||||
union
|
||||
dispiro [widths.center lineWidth] [flat Geom.MidX (Geom.MidY + Geom.Size * (4 / 3))] [curl (Geom.MidX + Geom.Size * (4 / 3)) Geom.MidY]
|
||||
dispiro [widths.center lineWidth] [flat (Geom.MidX + Geom.Size * (4 / 3)) Geom.MidY] [curl Geom.MidX (Geom.MidY - Geom.Size * (4 / 3))]
|
||||
dispiro [widths.center lineWidth] [flat Geom.MidX (Geom.MidY - Geom.Size * (4 / 3))] [curl (Geom.MidX - Geom.Size * (4 / 3)) Geom.MidY]
|
||||
dispiro [widths.center lineWidth] [flat (Geom.MidX - Geom.Size * (4 / 3)) Geom.MidY] [curl Geom.MidX (Geom.MidY + Geom.Size * (4 / 3))]
|
||||
dispiro [widths.center lineWidth] [flat (Geom.MidX - Geom.Size) (Geom.MidY + Geom.Size)] [curl (Geom.MidX + Geom.Size) (Geom.MidY - Geom.Size)]
|
||||
dispiro [widths.center lineWidth] [flat (Geom.MidX - Geom.Size) (Geom.MidY - Geom.Size)] [curl (Geom.MidX + Geom.Size) (Geom.MidY + Geom.Size)]
|
||||
dispiro [widths.center lineWidth] [flat (Geom.MidX - Geom.Size * (4 / 3)) Geom.MidY] [curl Geom.MidX (Geom.MidY + Geom.Size * (4 / 3))]
|
||||
dispiro [widths.center lineWidth] [flat (Geom.MidX - Geom.Size) (Geom.MidY + Geom.Size)] [curl (Geom.MidX + Geom.Size) (Geom.MidY - Geom.Size)]
|
||||
dispiro [widths.center lineWidth] [flat (Geom.MidX - Geom.Size) (Geom.MidY - Geom.Size)] [curl (Geom.MidX + Geom.Size) (Geom.MidY + Geom.Size)]
|
||||
|
||||
create-glyph [MangleName 'squareCornersDiagonals'] [MangleUnicode 0x1CC8A] : glyph-proc
|
||||
set-width Geom.Width
|
||||
|
@ -48,7 +48,7 @@ glyph-block Symbol-Geometric-Square-Corners : for-width-kinds WideWidth1
|
|||
dispiro [widths.lhs lineWidth] [flat Geom.MidX (Geom.MidY + Geom.Size * (4 / 3))] [curl (Geom.MidX + Geom.Size * (4 / 3)) Geom.MidY]
|
||||
dispiro [widths.lhs lineWidth] [flat (Geom.MidX + Geom.Size * (4 / 3)) Geom.MidY] [curl Geom.MidX (Geom.MidY - Geom.Size * (4 / 3))]
|
||||
dispiro [widths.lhs lineWidth] [flat Geom.MidX (Geom.MidY - Geom.Size * (4 / 3))] [curl (Geom.MidX - Geom.Size * (4 / 3)) Geom.MidY]
|
||||
dispiro [widths.lhs lineWidth] [flat (Geom.MidX - Geom.Size * (4 / 3)) Geom.MidY] [curl Geom.MidX (Geom.MidY + Geom.Size * (4 / 3))]
|
||||
dispiro [widths.lhs lineWidth] [flat (Geom.MidX - Geom.Size * (4 / 3)) Geom.MidY] [curl Geom.MidX (Geom.MidY + Geom.Size * (4 / 3))]
|
||||
|
||||
create-glyph [MangleName 'squareCornersTriangles'] [MangleUnicode 0x1CC8B] : glyph-proc
|
||||
set-width Geom.Width
|
||||
|
|
|
@ -6,6 +6,7 @@ export : define [apply] : begin
|
|||
run-glyph-module "./mosaic/teletext.mjs"
|
||||
run-glyph-module "./mosaic/smooth.mjs"
|
||||
run-glyph-module "./mosaic/box-drawing.mjs"
|
||||
run-glyph-module "./mosaic/split-graphic.mjs"
|
||||
run-glyph-module "./mosaic/large-type.mjs"
|
||||
run-glyph-module "./mosaic/powerline.mjs"
|
||||
run-glyph-module "./mosaic/notdef.mjs"
|
||||
|
|
|
@ -8,6 +8,20 @@ glyph-block Symbol-Mosaic-Block : begin
|
|||
glyph-block-import CommonShapes
|
||||
glyph-block-import Common-Derivatives
|
||||
|
||||
glyph-block-export HShade VShade
|
||||
define [HShade steps t b l r] : glyph-proc
|
||||
foreach [j : range 0 steps] : include : dispiro
|
||||
widths.center GeometryStroke
|
||||
disable-contrast
|
||||
flat l [mix t b ((j + 0.5) / steps)] [heading Rightward]
|
||||
curl r [mix t b ((j + 0.5) / steps)] [heading Rightward]
|
||||
define [VShade steps t b l r] : glyph-proc
|
||||
foreach [j : range 0 steps] : include : dispiro
|
||||
widths.center GeometryStroke
|
||||
disable-contrast
|
||||
flat [mix l r ((j + 0.5) / steps)] t [heading Downward]
|
||||
curl [mix l r ((j + 0.5) / steps)] b [heading Downward]
|
||||
|
||||
for-width-kinds WideWidth4
|
||||
|
||||
define top fontMetrics.os2.sTypoAscender
|
||||
|
@ -211,44 +225,34 @@ glyph-block Symbol-Mosaic-Block : begin
|
|||
set-width MosaicWidth
|
||||
include : Shade 4 FillHeavy
|
||||
|
||||
define filldata : list
|
||||
list 0x2596 0 0 1 0
|
||||
list 0x2597 0 0 0 1
|
||||
list 0x2598 1 0 0 0
|
||||
list 0x2599 1 0 1 1
|
||||
list 0x259A 1 0 0 1
|
||||
list 0x259B 1 1 1 0
|
||||
list 0x259C 1 1 0 1
|
||||
list 0x259D 0 1 0 0
|
||||
list 0x259E 0 1 1 0
|
||||
list 0x259F 0 1 1 1
|
||||
foreach [{unicode lt rt lb rb} : items-of filldata] : begin
|
||||
create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : ForceUpright
|
||||
define t top
|
||||
define b bottom
|
||||
define l 0
|
||||
define r MosaicWidth
|
||||
local mx : mix l r 0.5
|
||||
local my : mix b t 0.5
|
||||
if lt : include : spiro-outline
|
||||
corner l t
|
||||
corner l my
|
||||
corner mx my
|
||||
corner mx t
|
||||
if rt : include : spiro-outline
|
||||
corner mx t
|
||||
corner mx my
|
||||
corner r my
|
||||
corner r t
|
||||
if lb : include : spiro-outline
|
||||
corner l my
|
||||
corner l b
|
||||
corner mx b
|
||||
corner mx my
|
||||
if rb : include : spiro-outline
|
||||
corner mx my
|
||||
corner mx b
|
||||
corner r b
|
||||
corner r my
|
||||
define [DiagShade _steps] : begin
|
||||
local steps : Math.abs _steps
|
||||
local skew : [Math.round (MosaicWidth / Width)] * (top - bottom) / 2
|
||||
local coSw : GeometryStroke * [Math.hypot 1 (skew / MosaicWidth)]
|
||||
local fill : coSw * steps / (top - bottom)
|
||||
return : Shade _steps fill
|
||||
|
||||
create-glyph [MangleName 'sparseHoriShade'] [MangleUnicode 0x1CC40] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : ForceUpright
|
||||
include : HShade 4 top bottom left right
|
||||
create-glyph [MangleName 'sparseVertShade'] [MangleUnicode 0x1CC41] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : ForceUpright
|
||||
include : VShade (2 * MosaicWidthScalar) top bottom left right
|
||||
create-glyph [MangleName 'orthoCrosshatchShade'] [MangleUnicode 0x1CC42] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : refer-glyph : MangleName 'sparseHoriShade'
|
||||
include : refer-glyph : MangleName 'sparseVertShade'
|
||||
create-glyph [MangleName 'diagCrosshatchShade'] [MangleUnicode 0x1CC43] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : DiagShade 4
|
||||
include : DiagShade (-4)
|
||||
create-glyph [MangleName 'denseHoriShade'] [MangleUnicode 0x1CC44] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : ForceUpright
|
||||
include : HShade 8 top bottom left right
|
||||
create-glyph [MangleName 'denseVertShade'] [MangleUnicode 0x1CC45] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : ForceUpright
|
||||
include : VShade (4 * MosaicWidthScalar) top bottom left right
|
||||
|
|
|
@ -31,7 +31,7 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin
|
|||
create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : ForceUpright
|
||||
local posx : mix (left + light / 2) (right - light / 2) pos
|
||||
local posx : mix (left + [HSwToV light] / 2) (right - [HSwToV light] / 2) pos
|
||||
include : VBar.m posx bottom top light
|
||||
|
||||
# Scan Lines
|
||||
|
|
|
@ -40,14 +40,14 @@ glyph-block Symbol-Geometric-Mosaic-Inverted : for-width-kinds WideWidth1
|
|||
create-glyph [MangleName 'negBlackDiamond'] [MangleUnicode 0x1CC8D] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : difference
|
||||
refer-glyph : MangleName 'uni2588'
|
||||
refer-glyph : MangleName : NameUni 0x2588
|
||||
refer-glyph : MangleName 'blackDiamond'
|
||||
|
||||
# create-glyph [MangleName 'negBlackDiamond.mosc'] : glyph-proc
|
||||
# set-width MosaicWidth
|
||||
# include : ForceUpright
|
||||
# include : difference
|
||||
# refer-glyph : MangleName 'uni2588'
|
||||
# refer-glyph : MangleName : NameUni 0x2588
|
||||
# refer-glyph : MangleName 'blockMosaicSmooth22/2486'
|
||||
# Gr.linkSingleGlyphPairGr glyphStore [MangleName 'negBlackDiamond'] [MangleName 'negBlackDiamond.mosc'] Gr.MosaicForm
|
||||
|
||||
|
@ -91,19 +91,60 @@ glyph-block Symbol-Geometric-Mosaic-Inverted : for-width-kinds WideWidth1
|
|||
set-width MosaicWidth
|
||||
include : ForceUpright
|
||||
include : difference
|
||||
glyph-proc : include : refer-glyph : MangleName : NameUni 0x2588
|
||||
glyph-proc : include : refer-glyph : MangleName : NameUni 0x2573
|
||||
refer-glyph : MangleName : NameUni 0x2588
|
||||
refer-glyph : MangleName : NameUni 0x2573
|
||||
|
||||
create-glyph [MangleName : NameUni 0x1FBBE] [MangleUnicode 0x1FBBE] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : ForceUpright
|
||||
include : difference
|
||||
glyph-proc : include : refer-glyph : MangleName : NameUni 0x2588
|
||||
glyph-proc : include : refer-glyph : MangleName : NameUni 0x1FBA3
|
||||
refer-glyph : MangleName : NameUni 0x2588
|
||||
refer-glyph : MangleName : NameUni 0x1FBA3
|
||||
|
||||
create-glyph [MangleName : NameUni 0x1FBBF] [MangleUnicode 0x1FBBF] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : ForceUpright
|
||||
include : difference
|
||||
glyph-proc : include : refer-glyph : MangleName : NameUni 0x2588
|
||||
glyph-proc : include : refer-glyph : MangleName : NameUni 0x1FBAE
|
||||
refer-glyph : MangleName : NameUni 0x2588
|
||||
refer-glyph : MangleName : NameUni 0x1FBAE
|
||||
|
||||
do "Split Shapes"
|
||||
define [CellMask] : spiro-outline
|
||||
corner 0 MosaicTop
|
||||
corner MosaicWidth MosaicTop
|
||||
corner MosaicWidth MosaicBottom
|
||||
corner 0 MosaicBottom
|
||||
|
||||
define halfHeight : 0.5 * (MosaicTop - MosaicBottom)
|
||||
define halfWidth : 0.5 * MosaicWidth
|
||||
|
||||
define [SplitShape dstName dstUnicode srcName dx dy] : begin
|
||||
create-glyph [MangleName dstName] [MangleUnicode dstUnicode] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : intersection
|
||||
CellMask
|
||||
with-transform [ApparentTranslate dx dy] : refer-glyph : MangleName srcName
|
||||
|
||||
SplitShape 'whiteCircleLowerHalfJustified' 0x1FBE0 'whiteCircle' 0 halfHeight
|
||||
SplitShape 'whiteCircleLeftHalfJustified' 0x1FBE1 'whiteCircle' halfWidth 0
|
||||
SplitShape 'whiteCircleUpperHalfJustified' 0x1FBE2 'whiteCircle' 0 (-halfHeight)
|
||||
SplitShape 'whiteCircleRightHalfJustified' 0x1FBE3 'whiteCircle' (-halfWidth) 0
|
||||
SplitShape 'blackCircleLowerHalfJustified' 0x1FBE8 'blackCircle' 0 halfHeight
|
||||
SplitShape 'blackCircleLeftHalfJustified' 0x1FBE9 'blackCircle' halfWidth 0
|
||||
SplitShape 'blackCircleUpperHalfJustified' 0x1FBEA 'blackCircle' 0 (-halfHeight)
|
||||
SplitShape 'blackCircleRightHalfJustified' 0x1FBEB 'blackCircle' (-halfWidth) 0
|
||||
SplitShape 'blackCircleLBQuarterJustified' 0x1FBEC 'blackCircle' halfWidth halfHeight
|
||||
SplitShape 'blackCircleRTQuarterJustified' 0x1FBED 'blackCircle' (-halfWidth) (-halfHeight)
|
||||
SplitShape 'blackCircleLTQuarterJustified' 0x1FBEE 'blackCircle' halfWidth (-halfHeight)
|
||||
SplitShape 'blackCircleRBQuarterJustified' 0x1FBEF 'blackCircle' (-halfWidth) halfHeight
|
||||
SplitShape 'whiteEllipseLeftHalfJustified' 0x1CE0B 'whiteEllipse' halfWidth 0
|
||||
SplitShape 'whiteEllipseRightHalfJustified' 0x1CE0C 'whiteEllipse' (-halfWidth) 0
|
||||
|
||||
create-glyph [MangleName 'whiteCircleLeftRightHalf'] [MangleUnicode 0x1CE01] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : refer-glyph : MangleName 'whiteCircleLowerHalfJustified'
|
||||
include : refer-glyph : MangleName 'whiteCircleUpperHalfJustified'
|
||||
create-glyph [MangleName 'whiteCircleUpperLowerHalf'] [MangleUnicode 0x1CE00] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : refer-glyph : MangleName 'whiteCircleLeftHalfJustified'
|
||||
include : refer-glyph : MangleName 'whiteCircleRightHalfJustified'
|
||||
|
|
74
packages/font-glyphs/src/symbol/mosaic/split-graphic.ptl
Normal file
74
packages/font-glyphs/src/symbol/mosaic/split-graphic.ptl
Normal file
|
@ -0,0 +1,74 @@
|
|||
$$include '../../meta/macros.ptl'
|
||||
|
||||
import [mix linreg clamp fallback] from "@iosevka/util"
|
||||
import [Box] from "@iosevka/geometry/box"
|
||||
|
||||
glyph-module
|
||||
|
||||
glyph-block Symbol-Split-Graphic : for-width-kinds WideWidth4
|
||||
glyph-block-import CommonShapes
|
||||
glyph-block-import Common-Derivatives
|
||||
glyph-block-import Symbol-Pictograph-Stick-Figure : StickFigureKit PointingHandShape
|
||||
|
||||
define uiFigTop : mix ParenBot ParenTop 0.95
|
||||
define uiFigBot : mix ParenBot ParenTop 0.05
|
||||
|
||||
define top fontMetrics.os2.sTypoAscender
|
||||
define bottom fontMetrics.os2.sTypoDescender
|
||||
define left 0
|
||||
define right MosaicWidth
|
||||
define MosaicHeight : top - bottom
|
||||
|
||||
define [CellMask] : spiro-outline
|
||||
corner left top
|
||||
corner right top
|
||||
corner right bottom
|
||||
corner left bottom
|
||||
|
||||
define [SplitGraphic t b l r vspan hspan vidx hidx shapeFunc] : begin
|
||||
local r2 : r + MosaicWidth * (hspan - 1)
|
||||
local t2 : t + MosaicHeight * (vspan - 1)
|
||||
|
||||
return : intersection
|
||||
CellMask
|
||||
with-transform [Translate (-hidx * MosaicWidth) (-vidx * MosaicHeight)] : shapeFunc t2 b l r2
|
||||
|
||||
define boxDrawingStroke : AdviceStroke 3.5
|
||||
|
||||
do "Split Circles"
|
||||
define [CircleTouchingBox top bot left right] : glyph-proc
|
||||
include : ForceUpright
|
||||
include : dispiro
|
||||
widths.lhs boxDrawingStroke
|
||||
g4 left [mix top bot 0.5]
|
||||
arcvh.superness 2
|
||||
g4 [mix left right 0.5] bot
|
||||
archv.superness 2
|
||||
g4 right [mix top bot 0.5]
|
||||
arcvh.superness 2
|
||||
g4 [mix left right 0.5] top
|
||||
archv.superness 2
|
||||
close
|
||||
|
||||
define [BuildSplitCircle name unicode vspan hspan vidx hidx] : begin
|
||||
create-glyph [MangleName name] [MangleUnicode unicode] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : ForceUpright
|
||||
include : SplitGraphic top bottom left right vspan hspan vidx hidx CircleTouchingBox
|
||||
|
||||
BuildSplitCircle "twelfthCircleLT" 0x1CC30 4 4 3 0
|
||||
BuildSplitCircle "twelfthCircleCLT" 0x1CC31 4 4 3 1
|
||||
BuildSplitCircle "twelfthCircleCRT" 0x1CC32 4 4 3 2
|
||||
BuildSplitCircle "twelfthCircleRT" 0x1CC33 4 4 3 3
|
||||
BuildSplitCircle "twelfthCircleLMT" 0x1CC34 4 4 2 0
|
||||
BuildSplitCircle "quarterCircleLT" 0x1CC35 2 2 1 0
|
||||
BuildSplitCircle "quarterCircleRT" 0x1CC36 2 2 1 1
|
||||
BuildSplitCircle "twelfthCircleRMT" 0x1CC37 4 4 2 3
|
||||
BuildSplitCircle "twelfthCircleLMB" 0x1CC38 4 4 1 0
|
||||
BuildSplitCircle "quarterCircleLB" 0x1CC39 2 2 0 0
|
||||
BuildSplitCircle "quarterCircleRB" 0x1CC3A 2 2 0 1
|
||||
BuildSplitCircle "twelfthCircleRMB" 0x1CC3B 4 4 1 3
|
||||
BuildSplitCircle "twelfthCircleLB" 0x1CC3C 4 4 0 0
|
||||
BuildSplitCircle "twelfthCircleCLB" 0x1CC3D 4 4 0 1
|
||||
BuildSplitCircle "twelfthCircleCRB" 0x1CC3E 4 4 0 2
|
||||
BuildSplitCircle "twelfthCircleRB" 0x1CC3F 4 4 0 3
|
|
@ -8,9 +8,25 @@ glyph-module
|
|||
glyph-block Symbol-Mosaic-Teletext : begin
|
||||
glyph-block-import CommonShapes
|
||||
glyph-block-import Common-Derivatives
|
||||
glyph-block-import Symbol-Geometric-Shared : GeometricDim
|
||||
|
||||
define [MosaicTile t b l r w h id gap] : glyph-proc
|
||||
local column : id % w
|
||||
local row : Math.floor (id / w)
|
||||
define cw : (r - l) / w
|
||||
define ch : (t - b) / h
|
||||
include : spiro-outline
|
||||
corner (l + column * cw + gap) (t - row * ch - gap)
|
||||
corner (l + (column + 1) * cw - gap) (t - row * ch - gap)
|
||||
corner (l + (column + 1) * cw - gap) (t - (row + 1) * ch + gap)
|
||||
corner (l + column * cw + gap) (t - (row + 1) * ch + gap)
|
||||
|
||||
define [MosaicPattern t b l r w h bits] : glyph-proc
|
||||
if (bits.length > 0) : include : union
|
||||
MosaicTile t b l r w h bits.0 0
|
||||
MosaicPattern t b l r w h : bits.slice 1
|
||||
|
||||
for-width-kinds WideWidth4
|
||||
|
||||
define top fontMetrics.os2.sTypoAscender
|
||||
define bottom fontMetrics.os2.sTypoDescender
|
||||
define left 0
|
||||
|
@ -18,21 +34,16 @@ glyph-block Symbol-Mosaic-Teletext : begin
|
|||
|
||||
define gap : 0.05 * (top - bottom)
|
||||
|
||||
define [BlockMosaicTile w h id kgap] : glyph-proc
|
||||
local column : id % w
|
||||
local row : Math.floor (id / w)
|
||||
define cw : (right - left) / w
|
||||
define ch : (top - bottom) / h
|
||||
include : spiro-outline
|
||||
corner (column * cw + kgap * gap) (top - row * ch - kgap * gap)
|
||||
corner ((column + 1) * cw - kgap * gap) (top - row * ch - kgap * gap)
|
||||
corner ((column + 1) * cw - kgap * gap) (top - (row + 1) * ch + kgap * gap)
|
||||
corner (column * cw + kgap * gap) (top - (row + 1) * ch + kgap * gap)
|
||||
define Geom : GeometricDim MosaicUnitWidth MosaicWidth
|
||||
|
||||
define [BlockMosaicPattern w h bits] : glyph-proc
|
||||
if (bits.length > 0) : include : union
|
||||
BlockMosaicTile w h bits.0 0
|
||||
BlockMosaicPattern w h : bits.slice 1
|
||||
define [BlockMosaicPattern w h bits] : MosaicPattern top bottom left right w h bits
|
||||
define [BlockMosaicTile w h id gap] : MosaicTile top bottom left right w h id gap
|
||||
|
||||
define [BlockMosaic22 unicode pattern] : begin
|
||||
create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : ForceUpright
|
||||
include : BlockMosaicPattern 2 3 : [pattern.split ''].map : x => x - 1
|
||||
|
||||
define [BlockMosaic23 unicode pattern] : begin
|
||||
create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc
|
||||
|
@ -57,11 +68,22 @@ glyph-block Symbol-Mosaic-Teletext : begin
|
|||
set-width MosaicWidth
|
||||
include : ForceUpright
|
||||
foreach [bit : range 0 (w * h)] : if [maskBit offset bit]
|
||||
include : BlockMosaicTile w h bit 1
|
||||
include : BlockMosaicTile w h bit gap
|
||||
|
||||
MakeGappedBlockMosaic 2 2 0x1CC20
|
||||
MakeGappedBlockMosaic 2 3 0x1CE50
|
||||
|
||||
BlockMosaic22 0x2596 '3'
|
||||
BlockMosaic22 0x2597 '4'
|
||||
BlockMosaic22 0x2598 '1'
|
||||
BlockMosaic22 0x2599 '134'
|
||||
BlockMosaic22 0x259A '14'
|
||||
BlockMosaic22 0x259B '123'
|
||||
BlockMosaic22 0x259C '124'
|
||||
BlockMosaic22 0x259D '2'
|
||||
BlockMosaic22 0x259E '23'
|
||||
BlockMosaic22 0x259F '234'
|
||||
|
||||
BlockMosaic23 0x1FB00 '1'
|
||||
BlockMosaic23 0x1FB01 '2'
|
||||
BlockMosaic23 0x1FB02 '12'
|
||||
|
@ -358,3 +380,12 @@ glyph-block Symbol-Mosaic-Teletext : begin
|
|||
BlockMosaic 0x1FB95 4 4 {0 2 5 7 8 10 13 15}
|
||||
BlockMosaic 0x1FB96 4 4 {1 3 4 6 9 11 12 14}
|
||||
BlockMosaic 0x1FB97 4 4 {4 5 6 7 12 13 14 15}
|
||||
|
||||
create-glyph [MangleName 'symbolForDeleteSquareCheckerForm'] [MangleUnicode 0x2427] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : MosaicPattern Geom.Top Geom.Bot Geom.Left Geom.Right 5 5 {0 2 4 6 8 10 12 14 16 18 20 22 24}
|
||||
|
||||
create-glyph [MangleName 'symbolForDeleteRectCheckerForm'] [MangleUnicode 0x2428] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : MosaicPattern (Geom.MidY + Geom.Size * 1.4) (Geom.MidY - Geom.Size * 1.4) Geom.Left Geom.Right 5 7 {1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33}
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ export : define [apply] : begin
|
|||
run-glyph-module "./pictograph/cross.mjs"
|
||||
run-glyph-module "./pictograph/faces.mjs"
|
||||
run-glyph-module "./pictograph/flags.mjs"
|
||||
run-glyph-module "./pictograph/game-sprite.mjs"
|
||||
run-glyph-module "./pictograph/heart.mjs"
|
||||
run-glyph-module "./pictograph/i-ching.mjs"
|
||||
run-glyph-module "./pictograph/iec-power-and-playback.mjs"
|
||||
|
|
235
packages/font-glyphs/src/symbol/pictograph/game-sprite.ptl
Normal file
235
packages/font-glyphs/src/symbol/pictograph/game-sprite.ptl
Normal file
|
@ -0,0 +1,235 @@
|
|||
$$include '../../meta/macros.ptl'
|
||||
|
||||
import [mix linreg clamp fallback] from "@iosevka/util"
|
||||
import [Box] from "@iosevka/geometry/box"
|
||||
|
||||
glyph-module
|
||||
|
||||
glyph-block Symbol-Pictograph-Game-Sprite : for-width-kinds WideWidth4
|
||||
glyph-block-import CommonShapes
|
||||
glyph-block-import Common-Derivatives
|
||||
glyph-block-import Symbol-Pictograph-Stick-Figure : StickFigureKit WithD4Transform D4Transform
|
||||
glyph-block-import Symbol-Geometric-Shared : GeometricDim
|
||||
glyph-block-import Symbol-Mosaic-Block : HShade VShade
|
||||
|
||||
define top fontMetrics.os2.sTypoAscender
|
||||
define bottom fontMetrics.os2.sTypoDescender
|
||||
define left 0
|
||||
define right MosaicWidth
|
||||
|
||||
define midX : mix left right 0.5
|
||||
define midY : mix top bottom 0.5
|
||||
|
||||
define uiTop : mix ParenBot ParenTop 0.95
|
||||
define uiBot : mix ParenBot ParenTop 0.05
|
||||
define uiLeft : left + SB
|
||||
define uiRight : right - SB
|
||||
|
||||
define Geom : GeometricDim MosaicUnitWidth MosaicWidth
|
||||
|
||||
define [SidewaysBox top bottom left right _left2 _right2] : begin
|
||||
local left2 : fallback _left2 left
|
||||
local right2 : fallback _right2 right
|
||||
local newHeight : (right - left) * (right2 - left2) / (top - bottom)
|
||||
local midX : mix left2 right2 0.5
|
||||
local midY : mix top bottom 0.5
|
||||
|
||||
return : new Box
|
||||
midY + (right2 - midX)
|
||||
midY + (left2 - midX)
|
||||
midX - newHeight / 2
|
||||
midX + newHeight / 2
|
||||
|
||||
do "Stick Man"
|
||||
define [StickManScaffold top bottom left right _sw] : begin
|
||||
local baseHeight : uiTop - uiBot
|
||||
local height : top - bottom
|
||||
local scale : height / baseHeight
|
||||
|
||||
local scaffold : object
|
||||
top top
|
||||
bot bottom
|
||||
left left
|
||||
right right
|
||||
stroke : fallback _sw : AdviceStroke 3.5
|
||||
xMiddle : mix left right 0.5
|
||||
yMiddle : mix top bottom 0.5
|
||||
armRaiseK 0.4
|
||||
headSize : height / 2.5
|
||||
legSize : (Width - SB * 2) * scale
|
||||
armSize : (Width - SB) * scale
|
||||
|
||||
set scaffold.yPelvis : scaffold.bot + scaffold.legSize / 2
|
||||
set scaffold.xLeftFoot : scaffold.xMiddle - scaffold.legSize / 2
|
||||
set scaffold.xRightFoot : scaffold.xMiddle + scaffold.legSize / 2
|
||||
set scaffold.yNeck : scaffold.top - scaffold.headSize
|
||||
set scaffold.xLeftHead : scaffold.xMiddle - scaffold.headSize / 2
|
||||
set scaffold.xRightHead : scaffold.xMiddle + scaffold.headSize / 2
|
||||
set scaffold.xLeftArm : scaffold.xMiddle - scaffold.armSize / 2
|
||||
set scaffold.xRightArm : scaffold.xMiddle + scaffold.armSize / 2
|
||||
set scaffold.yShoulder : lambda [p] : mix scaffold.yPelvis scaffold.yNeck p
|
||||
|
||||
return scaffold
|
||||
|
||||
define [StickManHead scaffold] : OShape (scaffold.top - O) (scaffold.yNeck + O) (scaffold.xLeftHead + O) (scaffold.xRightHead - O) scaffold.stroke
|
||||
define [StickManArms scaffold p kl kr] : union
|
||||
dispiro
|
||||
widths.center scaffold.stroke
|
||||
corner scaffold.xMiddle [scaffold.yShoulder p]
|
||||
corner scaffold.xLeftArm ([scaffold.yShoulder p] + scaffold.armSize / 2 * kl)
|
||||
dispiro
|
||||
widths.center scaffold.stroke
|
||||
corner scaffold.xMiddle [scaffold.yShoulder p]
|
||||
corner scaffold.xRightArm ([scaffold.yShoulder p] + scaffold.armSize / 2 * kr)
|
||||
define [StickManBody scaffold kl kr] : glyph-proc
|
||||
include : StickManHead scaffold
|
||||
include : VBar.m scaffold.xMiddle scaffold.yPelvis scaffold.yNeck scaffold.stroke
|
||||
include : dispiro
|
||||
widths.center scaffold.stroke
|
||||
corner scaffold.xMiddle scaffold.yPelvis
|
||||
corner scaffold.xLeftFoot scaffold.bot
|
||||
include : dispiro
|
||||
widths.center scaffold.stroke
|
||||
corner scaffold.xMiddle scaffold.yPelvis
|
||||
corner scaffold.xRightFoot scaffold.bot
|
||||
include : StickManArms scaffold 0.6 kl kr
|
||||
define [StickManDressBody scaffold kl kr] : glyph-proc
|
||||
include : StickManHead scaffold
|
||||
define p 0.7
|
||||
define dressBottom : [mix scaffold.bot scaffold.yNeck 0.25] - scaffold.stroke / 2
|
||||
define dressLeft : scaffold.xLeftFoot - scaffold.stroke / 2
|
||||
define dressRight : scaffold.xRightFoot + scaffold.stroke / 2
|
||||
include : StickManArms scaffold p kl kr
|
||||
include : VBar.m scaffold.xMiddle [scaffold.yShoulder p] scaffold.yNeck
|
||||
include : intersection
|
||||
spiro-outline
|
||||
corner scaffold.xMiddle ([scaffold.yShoulder p] + scaffold.stroke)
|
||||
corner dressRight dressBottom
|
||||
corner dressLeft dressBottom
|
||||
union
|
||||
dispiro
|
||||
widths.rhs scaffold.stroke
|
||||
corner scaffold.xMiddle ([scaffold.yShoulder p] + scaffold.stroke)
|
||||
corner dressRight dressBottom
|
||||
dispiro
|
||||
widths.rhs scaffold.stroke
|
||||
corner dressRight dressBottom
|
||||
corner dressLeft dressBottom
|
||||
dispiro
|
||||
widths.rhs scaffold.stroke
|
||||
corner dressLeft dressBottom
|
||||
corner scaffold.xMiddle ([scaffold.yShoulder p] + scaffold.stroke)
|
||||
include : VBar.m [mix dressLeft dressRight 0.3] scaffold.bot (dressBottom - O) scaffold.stroke
|
||||
include : VBar.m [mix dressLeft dressRight 0.7] scaffold.bot (dressBottom - O) scaffold.stroke
|
||||
|
||||
|
||||
define scaffold : StickManScaffold uiTop uiBot uiLeft uiRight
|
||||
define hBox : SidewaysBox uiTop uiBot uiLeft uiRight
|
||||
define hScaffold : StickManScaffold hBox.top hBox.bottom hBox.left hBox.right [AdviceStroke 3.5 : Math.sqrt (MosaicWidthScalar / 2)]
|
||||
|
||||
create-glyph [MangleName 'stickMan'] [MangleUnicode 0x1FBC5] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : StickManBody scaffold 0 0
|
||||
create-glyph [MangleName 'stickManLeft'] [MangleUnicode 0x1CC02] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : WithD4Transform midX 1 0 : lambda [] : StickManBody hScaffold 0 0
|
||||
create-glyph [MangleName 'stickManRight'] [MangleUnicode 0x1CC03] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : WithD4Transform midX 3 0 : lambda [] : StickManBody hScaffold 0 0
|
||||
create-glyph [MangleName 'stickManDown'] [MangleUnicode 0x1CC04] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : WithD4Transform midX 2 0 : lambda [] : StickManBody scaffold 0 0
|
||||
create-glyph [MangleName 'stickManArmsRaised'] [MangleUnicode 0x1FBC6] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : StickManBody scaffold scaffold.armRaiseK scaffold.armRaiseK
|
||||
create-glyph [MangleName 'stickManLeaningLeft'] [MangleUnicode 0x1FBC7] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : StickManBody scaffold (-scaffold.armRaiseK) scaffold.armRaiseK
|
||||
create-glyph [MangleName 'stickManLeaningRight'] [MangleUnicode 0x1FBC8] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : StickManBody scaffold scaffold.armRaiseK (-scaffold.armRaiseK)
|
||||
create-glyph [MangleName 'stickManWithDress'] [MangleUnicode 0x1FBC9] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : StickManDressBody scaffold 0 0
|
||||
|
||||
do "Square Spiral"
|
||||
define directions : list
|
||||
* {.dx 1 .dy 0 .heading Rightward}
|
||||
* {.dx 0 .dy 1 .heading Upward}
|
||||
* {.dx (-1) .dy 0 .heading Leftward}
|
||||
* {.dx 0 .dy (-1) .heading Downward}
|
||||
|
||||
define spiralSw : AdviceStroke 4 : Math.sqrt (MosaicWidthScalar / 2)
|
||||
define oneStep : Geom.Size / 4.5
|
||||
define stepsPerTurn { 9 9 9 7 7 5 5 3 3 }
|
||||
define [SquareSpiral startx starty startidx] : glyph-proc
|
||||
local x1 startx
|
||||
local y1 starty
|
||||
foreach [idx : range 0 stepsPerTurn.length] : begin
|
||||
local {.dx dx .dy dy .heading dir} directions.((startidx + idx) % 4)
|
||||
local x2 : x1 + dx * oneStep * stepsPerTurn.(idx)
|
||||
local y2 : y1 + dy * oneStep * stepsPerTurn.(idx)
|
||||
include : dispiro
|
||||
widths.lhs spiralSw
|
||||
disable-contrast
|
||||
flat x1 y1 [heading dir]
|
||||
curl x2 y2 [heading dir]
|
||||
set x1 x2
|
||||
set y1 y2
|
||||
|
||||
create-glyph [MangleName "squareSpiralFromTopLeft"] [MangleUnicode 0x1CC7C] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : SquareSpiral Geom.Left Geom.Top 3
|
||||
create-glyph [MangleName "squareSpiralFromTopRight"] [MangleUnicode 0x1CC7D] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : SquareSpiral Geom.Right Geom.Top 2
|
||||
create-glyph [MangleName "squareSpiralFromBottomRight"] [MangleUnicode 0x1CC7E] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : SquareSpiral Geom.Right Geom.Bot 1
|
||||
create-glyph [MangleName "squareSpiralFromBottomLeft"] [MangleUnicode 0x1CC7F] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : SquareSpiral Geom.Left Geom.Bot 0
|
||||
|
||||
do "Ladder"
|
||||
create-glyph [MangleName "vertLadder"] [MangleUnicode 0x1CC84] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : HShade 8 top bottom Geom.Left Geom.Right
|
||||
include : VBar.l Geom.Left bottom top GeometryStroke
|
||||
include : VBar.r Geom.Right bottom top GeometryStroke
|
||||
|
||||
create-glyph [MangleName "horiLadder"] [MangleUnicode 0x1CC85] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : VShade (4 * MosaicWidthScalar) Geom.Top Geom.Bot left right
|
||||
include : HBar.b left right Geom.Bot GeometryStroke
|
||||
include : HBar.t left right Geom.Top GeometryStroke
|
||||
|
||||
do "Striped Triangles"
|
||||
define stripes : 2 + 2 * MosaicWidthScalar
|
||||
define coTop : mix Geom.Top Geom.Bot (0 - 1 / (2 * stripes))
|
||||
define coBot : mix Geom.Top Geom.Bot (1 + 1 / (2 * stripes))
|
||||
define coLeft : mix Geom.Left Geom.Right (0 - 1 / (2 * stripes))
|
||||
define coRight : mix Geom.Left Geom.Right (1 + 1 / (2 * stripes))
|
||||
|
||||
create-glyph [MangleName "stripedTriangleLeft"] [MangleUnicode 0x1CC80] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : intersection
|
||||
refer-glyph : MangleName "blackTriangleLeft"
|
||||
VShade stripes top bottom coLeft coRight
|
||||
|
||||
create-glyph [MangleName "stripedTriangleUp"] [MangleUnicode 0x1CC81] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : intersection
|
||||
refer-glyph : MangleName "blackTriangleUp"
|
||||
HShade stripes coTop coBot left right
|
||||
|
||||
create-glyph [MangleName "stripedTriangleRight"] [MangleUnicode 0x1CC82] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : intersection
|
||||
refer-glyph : MangleName "blackTriangleRight"
|
||||
VShade stripes top bottom coLeft coRight
|
||||
|
||||
create-glyph [MangleName "stripedTriangleDown"] [MangleUnicode 0x1CC83] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : intersection
|
||||
refer-glyph : MangleName "blackTriangleDown"
|
||||
HShade stripes coTop coBot left right
|
|
@ -206,97 +206,6 @@ glyph-block Symbol-Pictograph-Powerline-And-GUI : begin
|
|||
MosaicWidthMask
|
||||
PointingHandBody (-MosaicWidth * 2)
|
||||
|
||||
do "Stick Man"
|
||||
define scaffold : object
|
||||
set scaffold.top uiFigTop
|
||||
set scaffold.bot uiFigBot
|
||||
set scaffold.xMiddle : MosaicWidth / 2
|
||||
set scaffold.yMiddle : mix uiFigBot uiFigTop 0.5
|
||||
set scaffold.headSize : (uiFigTop - uiFigBot) / 2.5
|
||||
set scaffold.legSize : (Middle - SB) * 2
|
||||
set scaffold.armSize : (Middle - SB / 2) * 2
|
||||
set scaffold.stroke : AdviceStroke 3.5
|
||||
set scaffold.armRaiseK 0.4
|
||||
set scaffold.yPelvis : scaffold.bot + scaffold.legSize / 2
|
||||
set scaffold.xLeftFoot : scaffold.xMiddle - scaffold.legSize / 2
|
||||
set scaffold.xRightFoot : scaffold.xMiddle + scaffold.legSize / 2
|
||||
set scaffold.yNeck : scaffold.top - scaffold.headSize
|
||||
set scaffold.xLeftHead : scaffold.xMiddle - scaffold.headSize / 2
|
||||
set scaffold.xRightHead : scaffold.xMiddle + scaffold.headSize / 2
|
||||
set scaffold.xLeftArm : scaffold.xMiddle - scaffold.armSize / 2
|
||||
set scaffold.xRightArm : scaffold.xMiddle + scaffold.armSize / 2
|
||||
set scaffold.yShoulder : lambda [p] : mix scaffold.yPelvis scaffold.yNeck p
|
||||
|
||||
define [StickManHead] : OShape (scaffold.top - O) (scaffold.yNeck + O) (scaffold.xLeftHead + O) (scaffold.xRightHead - O) scaffold.stroke
|
||||
define [StickManArms p kl kr] : union
|
||||
dispiro
|
||||
widths.center scaffold.stroke
|
||||
corner scaffold.xMiddle [scaffold.yShoulder p]
|
||||
corner scaffold.xLeftArm ([scaffold.yShoulder p] + scaffold.armSize / 2 * kl)
|
||||
dispiro
|
||||
widths.center scaffold.stroke
|
||||
corner scaffold.xMiddle [scaffold.yShoulder p]
|
||||
corner scaffold.xRightArm ([scaffold.yShoulder p] + scaffold.armSize / 2 * kr)
|
||||
|
||||
define [StickManBody kl kr] : glyph-proc
|
||||
include : StickManHead
|
||||
include : VBar.m scaffold.xMiddle scaffold.yPelvis scaffold.yNeck
|
||||
include : dispiro
|
||||
widths.center scaffold.stroke
|
||||
corner scaffold.xMiddle scaffold.yPelvis
|
||||
corner scaffold.xLeftFoot scaffold.bot
|
||||
include : dispiro
|
||||
widths.center scaffold.stroke
|
||||
corner scaffold.xMiddle scaffold.yPelvis
|
||||
corner scaffold.xRightFoot scaffold.bot
|
||||
include : StickManArms 0.6 kl kr
|
||||
|
||||
define [StickManDressBody kl kr] : glyph-proc
|
||||
include : OShape (scaffold.top - O) (scaffold.yNeck + O) (scaffold.xLeftHead + O) (scaffold.xRightHead - O) scaffold.stroke
|
||||
define p 0.7
|
||||
define dressBottom : [mix scaffold.bot scaffold.yNeck 0.25] - scaffold.stroke / 2
|
||||
define dressLeft : scaffold.xLeftFoot - scaffold.stroke / 2
|
||||
define dressRight : scaffold.xRightFoot + scaffold.stroke / 2
|
||||
include : StickManArms p kl kr
|
||||
include : VBar.m scaffold.xMiddle [scaffold.yShoulder p] scaffold.yNeck
|
||||
include : intersection
|
||||
spiro-outline
|
||||
corner scaffold.xMiddle ([scaffold.yShoulder p] + scaffold.stroke)
|
||||
corner dressRight dressBottom
|
||||
corner dressLeft dressBottom
|
||||
union
|
||||
dispiro
|
||||
widths.rhs scaffold.stroke
|
||||
corner scaffold.xMiddle ([scaffold.yShoulder p] + scaffold.stroke)
|
||||
corner dressRight dressBottom
|
||||
dispiro
|
||||
widths.rhs scaffold.stroke
|
||||
corner dressRight dressBottom
|
||||
corner dressLeft dressBottom
|
||||
dispiro
|
||||
widths.rhs scaffold.stroke
|
||||
corner dressLeft dressBottom
|
||||
corner scaffold.xMiddle ([scaffold.yShoulder p] + scaffold.stroke)
|
||||
include : VBar.m [mix dressLeft dressRight 0.3] scaffold.bot (dressBottom - O) scaffold.stroke
|
||||
include : VBar.m [mix dressLeft dressRight 0.7] scaffold.bot (dressBottom - O) scaffold.stroke
|
||||
|
||||
# Stick Man Figure
|
||||
create-glyph [MangleName 'stickMan'] [MangleUnicode 0x1FBC5] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : StickManBody 0 0
|
||||
create-glyph [MangleName 'stickManArmsRaised'] [MangleUnicode 0x1FBC6] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : StickManBody scaffold.armRaiseK scaffold.armRaiseK
|
||||
create-glyph [MangleName 'stickManLeaningLeft'] [MangleUnicode 0x1FBC7] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : StickManBody (-scaffold.armRaiseK) scaffold.armRaiseK
|
||||
create-glyph [MangleName 'stickManLeaningRight'] [MangleUnicode 0x1FBC8] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : StickManBody scaffold.armRaiseK (-scaffold.armRaiseK)
|
||||
create-glyph [MangleName 'stickManWithDress'] [MangleUnicode 0x1FBC9] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : StickManDressBody 0 0
|
||||
|
||||
do "upPointingChevron"
|
||||
define scaffold : object
|
||||
set scaffold.top : mix uiFigBot uiFigTop 0.85
|
||||
|
|
|
@ -12,6 +12,19 @@ glyph-block Symbol-Pictograph-Stick-Figure : begin
|
|||
|
||||
define PictographSw : AdviceStroke 4
|
||||
|
||||
glyph-block-export D4Transform WithD4Transform
|
||||
define [D4Transform midx rot refl] : Transform.Combine
|
||||
Translate (-midx) (-SymbolMid)
|
||||
if refl [Scale (-1) 1] [Transform.Id]
|
||||
Rotate ((rot / 2) * Math.PI)
|
||||
Translate (+midx) (+SymbolMid)
|
||||
define [WithD4Transform midx rot refl shapeFunc] : new-glyph : glyph-proc
|
||||
local giz this.gizmo
|
||||
set this.gizmo : Transform.Id
|
||||
include : shapeFunc
|
||||
include : D4Transform midx rot refl
|
||||
include giz
|
||||
|
||||
glyph-block-export StickFigureKit
|
||||
define [StickFigureKit box tfm sw] : namespace
|
||||
export : define [RoundSeg h1 v1 h2 v2 cl cr] : glyph-proc
|
||||
|
@ -76,6 +89,7 @@ glyph-block Symbol-Pictograph-Stick-Figure : begin
|
|||
local z1 : tfm.applyXY [mix box.left box.right h1] [mix box.bottom box.top v1]
|
||||
include : DotAt z1.x z1.y (pr * (box.top - box.bottom))
|
||||
|
||||
# Pointing Hand
|
||||
glyph-block-export PointingHandShape
|
||||
define [PointingHandShape box tfm sw] : begin
|
||||
local Kit : StickFigureKit box tfm sw
|
||||
|
@ -123,32 +137,20 @@ glyph-block Symbol-Pictograph-Stick-Figure : begin
|
|||
|
||||
create-glyph [MangleName "whiteRightPointingIndex"] [MangleUnicode 0x261E] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : PointingHandShape hBox [Translate 0 0] sw
|
||||
include : PointingHandShape hBox [Transform.Id] sw
|
||||
|
||||
create-glyph [MangleName "whiteLeftPointingIndex"] [MangleUnicode 0x261C] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
local tfm : Transform.Combine
|
||||
Translate (-0.5 * MosaicWidth) (-SymbolMid)
|
||||
Scale (-1) 1
|
||||
Translate (+0.5 * MosaicWidth) (+SymbolMid)
|
||||
include : PointingHandShape hBox tfm sw
|
||||
include : PointingHandShape hBox [D4Transform (MosaicWidth / 2) 0 1] sw
|
||||
|
||||
create-glyph [MangleName "whiteDownPointingIndex"] [MangleUnicode 0x261F] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
local tfm : Transform.Combine
|
||||
Translate (-0.5 * MosaicWidth) (-SymbolMid)
|
||||
Rotate (-0.5 * Math.PI)
|
||||
Translate (+0.5 * MosaicWidth) (+SymbolMid)
|
||||
include : PointingHandShape vBox tfm sw
|
||||
include : PointingHandShape vBox [D4Transform (MosaicWidth / 2) 3 0] sw
|
||||
|
||||
create-glyph [MangleName "whiteUpPointingIndex"] [MangleUnicode 0x261D] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
local tfm : Transform.Combine
|
||||
Translate (-0.5 * MosaicWidth) (-SymbolMid)
|
||||
Scale (-1) 1
|
||||
Rotate (-0.5 * Math.PI)
|
||||
Translate (+0.5 * MosaicWidth) (+SymbolMid)
|
||||
include : PointingHandShape vBox tfm sw
|
||||
include : PointingHandShape vBox [D4Transform (MosaicWidth / 2) 3 1] sw
|
||||
|
||||
create-glyph 'ccHumanFigure' : glyph-proc
|
||||
define yTop : mix ParenBot ParenTop 0.95
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
{
|
||||
"name": "@iosevka/font-kits",
|
||||
"version": "29.0.1",
|
||||
"version": "29.0.2",
|
||||
"private": true,
|
||||
"exports": {
|
||||
"./boole-kit": "./src/boole-kit.mjs",
|
||||
"./spiro-kit": "./src/spiro-kit.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@iosevka/geometry": "29.0.1",
|
||||
"@iosevka/glyph": "29.0.1",
|
||||
"@iosevka/util": "29.0.1"
|
||||
"@iosevka/geometry": "29.0.2",
|
||||
"@iosevka/glyph": "29.0.2",
|
||||
"@iosevka/util": "29.0.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
"name": "@iosevka/font-otl",
|
||||
"version": "29.0.1",
|
||||
"version": "29.0.2",
|
||||
"private": true,
|
||||
"exports": {
|
||||
".": "./src/index.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@iosevka/font-glyphs": "29.0.1",
|
||||
"@iosevka/glyph": "29.0.1",
|
||||
"@iosevka/font-glyphs": "29.0.2",
|
||||
"@iosevka/glyph": "29.0.2",
|
||||
"toposort": "^2.0.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@iosevka/font",
|
||||
"version": "29.0.1",
|
||||
"version": "29.0.2",
|
||||
"private": true,
|
||||
"exports": {
|
||||
".": "./src/index.mjs",
|
||||
|
@ -10,13 +10,13 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@iarna/toml": "^2.2.5",
|
||||
"@iosevka/font-glyphs": "29.0.1",
|
||||
"@iosevka/font-otl": "29.0.1",
|
||||
"@iosevka/geometry": "29.0.1",
|
||||
"@iosevka/geometry-cache": "29.0.1",
|
||||
"@iosevka/glyph": "29.0.1",
|
||||
"@iosevka/param": "29.0.1",
|
||||
"@iosevka/util": "29.0.1",
|
||||
"@iosevka/font-glyphs": "29.0.2",
|
||||
"@iosevka/font-otl": "29.0.2",
|
||||
"@iosevka/geometry": "29.0.2",
|
||||
"@iosevka/geometry-cache": "29.0.2",
|
||||
"@iosevka/glyph": "29.0.2",
|
||||
"@iosevka/param": "29.0.2",
|
||||
"@iosevka/util": "29.0.2",
|
||||
"harfbuzzjs": "^0.3.4",
|
||||
"ot-builder": "^1.7.3",
|
||||
"semver": "^7.6.0"
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "@iosevka/geometry-cache",
|
||||
"version": "29.0.1",
|
||||
"version": "29.0.2",
|
||||
"private": true,
|
||||
"exports": {
|
||||
".": "./src/index.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@iosevka/geometry": "29.0.1",
|
||||
"@iosevka/geometry": "29.0.2",
|
||||
"@msgpack/msgpack": "^2.8.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@iosevka/geometry",
|
||||
"version": "29.0.1",
|
||||
"version": "29.0.2",
|
||||
"private": true,
|
||||
"exports": {
|
||||
".": "./src/index.mjs",
|
||||
|
@ -13,7 +13,7 @@
|
|||
"./spiro-control": "./src/spiro-control.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@iosevka/util": "29.0.1",
|
||||
"@iosevka/util": "29.0.2",
|
||||
"spiro": "^3.0.0",
|
||||
"typo-geom": "^0.15.1"
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@iosevka/glyph",
|
||||
"version": "29.0.1",
|
||||
"version": "29.0.2",
|
||||
"private": true,
|
||||
"exports": {
|
||||
".": "./src/glyph.mjs",
|
||||
|
@ -9,6 +9,6 @@
|
|||
"./relation": "./src/relation.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@iosevka/geometry": "29.0.1"
|
||||
"@iosevka/geometry": "29.0.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@iosevka/param",
|
||||
"version": "29.0.1",
|
||||
"version": "29.0.2",
|
||||
"private": true,
|
||||
"exports": {
|
||||
".": "./src/index.mjs",
|
||||
|
@ -9,6 +9,6 @@
|
|||
"./metric-override": "./src/metric-override.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@iosevka/util": "29.0.1"
|
||||
"@iosevka/util": "29.0.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@iosevka/util",
|
||||
"version": "29.0.1",
|
||||
"version": "29.0.2",
|
||||
"private": true,
|
||||
"exports": {
|
||||
".": "./src/index.mjs",
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
"name": "@iosevka/amend-readme",
|
||||
"version": "29.0.1",
|
||||
"version": "29.0.2",
|
||||
"private": true,
|
||||
"exports": {
|
||||
".": "./src/index.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@iarna/toml": "^2.2.5",
|
||||
"@iosevka/param": "29.0.1",
|
||||
"@iosevka/param": "29.0.2",
|
||||
"@unicode/unicode-15.1.0": "^1.5.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,9 +43,6 @@ export default async function main(argv) {
|
|||
`<tr><td align="center"><h1>` +
|
||||
`<a href="${baseUrl}/PACKAGE-LIST.md">View package list</a>` +
|
||||
`</h1></td></tr>` +
|
||||
`<tr><td align="center">` +
|
||||
`<a href="${baseUrl}/packages-sha.txt">Package hashes (SHA-256)</a>` +
|
||||
`</td></tr>` +
|
||||
`</table>`,
|
||||
);
|
||||
await fs.promises.writeFile(argv.outputPath, out.data);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@iosevka/data-export",
|
||||
"version": "29.0.1",
|
||||
"version": "29.0.2",
|
||||
"private": true,
|
||||
"exports": {
|
||||
".": "./src/index.mjs",
|
||||
|
@ -10,7 +10,7 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@iarna/toml": "^2.2.5",
|
||||
"@iosevka/param": "29.0.1",
|
||||
"@iosevka/param": "29.0.2",
|
||||
"@unicode/unicode-15.1.0": "^1.5.2",
|
||||
"cldr": "^7.5.0"
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{
|
||||
"name": "@iosevka/generate-samples",
|
||||
"version": "29.0.1",
|
||||
"version": "29.0.2",
|
||||
"private": true,
|
||||
"exports": {
|
||||
".": "./src/index.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@iosevka/data-export": "29.0.1"
|
||||
"@iosevka/data-export": "29.0.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
{
|
||||
"name": "@iosevka/misc",
|
||||
"version": "29.0.1",
|
||||
"version": "29.0.2",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"semver": "^7.6.0",
|
||||
"wawoff2": "^2.0.1",
|
||||
"@iosevka/util": "29.0.1"
|
||||
"@iosevka/util": "29.0.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,36 +0,0 @@
|
|||
"use strict";
|
||||
|
||||
import crypto from "crypto";
|
||||
import fs from "fs";
|
||||
import path from "path";
|
||||
|
||||
export default async function (out, archiveFiles) {
|
||||
const filesToAnalyze = Array.from(new Set(archiveFiles.map(f => f.full))).sort();
|
||||
|
||||
let s = "";
|
||||
for (const filePath of filesToAnalyze) {
|
||||
s += `${await hashFile(filePath)}\t${path.basename(filePath)}\n`;
|
||||
}
|
||||
|
||||
await fs.promises.writeFile(out, s);
|
||||
}
|
||||
|
||||
function hashFile(filePath) {
|
||||
return new Promise((resolve, reject) => {
|
||||
let sum = crypto.createHash("sha256");
|
||||
let fileStream = fs.createReadStream(filePath);
|
||||
fileStream.on("error", err => {
|
||||
return reject(err);
|
||||
});
|
||||
fileStream.on("data", chunk => {
|
||||
try {
|
||||
sum.update(chunk);
|
||||
} catch (ex) {
|
||||
return reject(ex);
|
||||
}
|
||||
});
|
||||
fileStream.on("end", () => {
|
||||
return resolve(sum.digest("hex"));
|
||||
});
|
||||
});
|
||||
}
|
56
tools/misc/src/update-release-sha-file.mjs
Normal file
56
tools/misc/src/update-release-sha-file.mjs
Normal file
|
@ -0,0 +1,56 @@
|
|||
"use strict";
|
||||
|
||||
import crypto from "crypto";
|
||||
import fs from "fs";
|
||||
import path from "path";
|
||||
|
||||
import { glob } from "glob";
|
||||
|
||||
setTimeout(
|
||||
() =>
|
||||
main().catch(e => {
|
||||
console.error(e);
|
||||
process.exit(1);
|
||||
}),
|
||||
0,
|
||||
);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
async function main() {
|
||||
const outMd = await glob("release-archives/*.md");
|
||||
if (outMd.length != 1) throw new Error("Expected exactly one .md file in release-archives");
|
||||
|
||||
const o = fs.createWriteStream(outMd[0], { flags: "a" });
|
||||
|
||||
o.write("\n\n## SHA256 checksums\n\n");
|
||||
o.write("<details>\n\n");
|
||||
const zipFilesToArchive = (await glob("release-archives/*.zip")).sort();
|
||||
for (const filePath of zipFilesToArchive) {
|
||||
console.log(`Checking ${filePath}...`);
|
||||
o.write(`* \`${await hashFile(filePath)}\` ${path.basename(filePath)}\n`);
|
||||
}
|
||||
o.write("</details>\n\n");
|
||||
|
||||
o.end();
|
||||
}
|
||||
|
||||
function hashFile(filePath) {
|
||||
return new Promise((resolve, reject) => {
|
||||
let sum = crypto.createHash("sha256");
|
||||
let fileStream = fs.createReadStream(filePath);
|
||||
fileStream.on("error", err => {
|
||||
return reject(err);
|
||||
});
|
||||
fileStream.on("data", chunk => {
|
||||
try {
|
||||
sum.update(chunk);
|
||||
} catch (ex) {
|
||||
return reject(ex);
|
||||
}
|
||||
});
|
||||
fileStream.on("end", () => {
|
||||
return resolve(sum.digest("hex"));
|
||||
});
|
||||
});
|
||||
}
|
|
@ -1120,23 +1120,35 @@ const Release = task(`release`, async target => {
|
|||
});
|
||||
|
||||
const ReleaseArchives = task(`release:archives`, async target => {
|
||||
const [version, collectPlans] = await target.need(Version, CollectPlans, UtilScriptFiles);
|
||||
const [collectPlans] = await target.need(Version, CollectPlans, UtilScriptFiles);
|
||||
|
||||
let goals = [];
|
||||
for (const [cgr, plan] of Object.entries(collectPlans)) {
|
||||
if (!plan.inRelease) continue;
|
||||
const subGroups = collectPlans[cgr].groupDecomposition;
|
||||
goals.push(TtcZip(cgr, version));
|
||||
goals.push(SuperTtcZip(cgr, version));
|
||||
for (const gr of subGroups) {
|
||||
goals.push(GroupTtfZip(gr, version, false));
|
||||
goals.push(GroupTtfZip(gr, version, true));
|
||||
goals.push(GroupWebZip(gr, version, false));
|
||||
goals.push(GroupWebZip(gr, version, true));
|
||||
}
|
||||
goals.push(ReleaseArchivesFor(cgr));
|
||||
}
|
||||
|
||||
await target.need(goals);
|
||||
});
|
||||
|
||||
const ReleaseArchivesFor = task.group(`release:archives-for`, async (target, cgr) => {
|
||||
const [version, collectPlans] = await target.need(Version, CollectPlans, UtilScriptFiles);
|
||||
const plan = collectPlans[cgr];
|
||||
if (!plan || !plan.inRelease) throw new Error(`CollectGroup ${cgr} is not in release.`);
|
||||
|
||||
let goals = [];
|
||||
goals.push(TtcZip(cgr, version));
|
||||
goals.push(SuperTtcZip(cgr, version));
|
||||
const subGroups = collectPlans[cgr].groupDecomposition;
|
||||
for (const gr of subGroups) {
|
||||
goals.push(GroupTtfZip(gr, version, false));
|
||||
goals.push(GroupTtfZip(gr, version, true));
|
||||
goals.push(GroupWebZip(gr, version, false));
|
||||
goals.push(GroupWebZip(gr, version, true));
|
||||
}
|
||||
|
||||
const [archiveFiles] = await target.need(goals);
|
||||
// Create hash of packages
|
||||
await node("tools/misc/src/create-sha-file.mjs", "doc/packages-sha.txt", archiveFiles);
|
||||
return archiveFiles;
|
||||
});
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue