diff --git a/.gitignore b/.gitignore index 46374487d..508110ecc 100644 --- a/.gitignore +++ b/.gitignore @@ -41,8 +41,6 @@ pages/ releases/ release-archives/ testdrive/iosevka* -snapshot/iosevka* -snapshot/index.css # Generated scripts font-src/gen/build-glyphs.js diff --git a/README.md b/README.md index 6a1b1824a..86011abca 100644 --- a/README.md +++ b/README.md @@ -195,7 +195,7 @@ Since version 2.0, Iosevka would no longer support building via `makefile`. To i - + 3. Run `npm run build -- contents::` and the built fonts would be avaliable in `dist/`. Aside from `contents::`, other options are: @@ -549,6 +549,12 @@ The current available styles for `design`/`upright`/`italic`/`oblique` options a * Styles for `<=`, `>=`: * `v-lig-ltgteq-flat`, `cv66`: The lower bar of `<=` and `>=` ligation is flat (default). * `v-lig-ltgteq-slanted`, `cv67`: The lower bar of `<=` and `>=` ligation is slanted. + * Styles for `'`: + * `v-ascii-quote-straight`, `VXDG`: Show ASCII quote (`'`) as short vertical straight bar. (default). + * `v-ascii-quote-raised-comma`, `VXDH`: Show ASCII quote (`'`) as raised comma.. + * Styles for ```: + * `v-ascii-grave-straight`, `VXDI`: Show ASCII grave (`` ` ``) as short diagonal straight bar. (default). + * `v-ascii-grave-raised-inverse-comma`, `VXDJ`: Show ASCII grave (`` ` ``) as raised comma.. diff --git a/package.json b/package.json index c50f8ae7e..f5b8dcdb6 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "scripts": { "bump-ver": "node utility/update-package-json-version/index", "build": "verda -f verdafile.js", + "clean": "verda -f verdafile.js clean", "install": "node utility/check-env" }, "dependencies": { diff --git a/snapshot/get-snap.js b/snapshot-src/get-snap.js similarity index 100% rename from snapshot/get-snap.js rename to snapshot-src/get-snap.js diff --git a/snapshot/index.js b/snapshot-src/index.js similarity index 100% rename from snapshot/index.js rename to snapshot-src/index.js diff --git a/snapshot/index.styl b/snapshot-src/index.styl similarity index 100% rename from snapshot/index.styl rename to snapshot-src/index.styl diff --git a/utility/generate-snapshot-page/templates/index.ejs b/snapshot-src/templates/index.ejs similarity index 100% rename from utility/generate-snapshot-page/templates/index.ejs rename to snapshot-src/templates/index.ejs diff --git a/utility/generate-snapshot-page/templates/partial/cv-sample.ejs b/snapshot-src/templates/partial/cv-sample.ejs similarity index 100% rename from utility/generate-snapshot-page/templates/partial/cv-sample.ejs rename to snapshot-src/templates/partial/cv-sample.ejs diff --git a/utility/generate-snapshot-page/templates/partial/languages.ejs b/snapshot-src/templates/partial/languages.ejs similarity index 100% rename from utility/generate-snapshot-page/templates/partial/languages.ejs rename to snapshot-src/templates/partial/languages.ejs diff --git a/utility/generate-snapshot-page/templates/partial/ligation.ejs b/snapshot-src/templates/partial/ligation.ejs similarity index 100% rename from utility/generate-snapshot-page/templates/partial/ligation.ejs rename to snapshot-src/templates/partial/ligation.ejs diff --git a/utility/generate-snapshot-page/templates/partial/matrix.ejs b/snapshot-src/templates/partial/matrix.ejs similarity index 100% rename from utility/generate-snapshot-page/templates/partial/matrix.ejs rename to snapshot-src/templates/partial/matrix.ejs diff --git a/utility/generate-snapshot-page/templates/partial/packaging-sampler.ejs b/snapshot-src/templates/partial/packaging-sampler.ejs similarity index 100% rename from utility/generate-snapshot-page/templates/partial/packaging-sampler.ejs rename to snapshot-src/templates/partial/packaging-sampler.ejs diff --git a/utility/generate-snapshot-page/templates/partial/previews.ejs b/snapshot-src/templates/partial/previews.ejs similarity index 100% rename from utility/generate-snapshot-page/templates/partial/previews.ejs rename to snapshot-src/templates/partial/previews.ejs diff --git a/utility/generate-snapshot-page/templates/partial/ss-sample.ejs b/snapshot-src/templates/partial/ss-sample.ejs similarity index 100% rename from utility/generate-snapshot-page/templates/partial/ss-sample.ejs rename to snapshot-src/templates/partial/ss-sample.ejs diff --git a/utility/generate-snapshot-page/templates/partial/weights.ejs b/snapshot-src/templates/partial/weights.ejs similarity index 100% rename from utility/generate-snapshot-page/templates/partial/weights.ejs rename to snapshot-src/templates/partial/weights.ejs diff --git a/snapshot/index.html b/snapshot/index.html deleted file mode 100644 index 694539d84..000000000 --- a/snapshot/index.html +++ /dev/null @@ -1,1441 +0,0 @@ - - - - - - -

This page is used for taking snapshots of Iosevka only.

- -
-
SAMPLE_CODE(TestMyTypefaceCodeSnippet, "Iosevka", DARK) { // The quick brown fox jumps over the lazy dog.
-	const wchar_t* code = L"(<#part>\\d+)(<#capture>(<section>(<&part>)))((<&capture>).){3}(<&capture>)";
-	RegexNode node = (rCapture(L"section", r_d().Some()) + rC(L'.')).Loop(3, 3) + rCapture(L"section", r_d().Some());
-	ThePatternsMustBeSame(code, node); // Clarity : [i l I 1] [0 O 8] 1234567890. {}[]()<>$*-+=/#_%^@\&|~?'"`!,.;:
-}
-
SAMPLE_CODE(TestMyTypefaceCodeSnippet, "Iosevka", LIGHT) { // The quick brown fox jumps over the lazy dog.
-	const wchar_t* code = L"(<#part>\\d+)(<#capture>(<section>(<&part>)))((<&capture>).){3}(<&capture>)";
-	RegexNode node = (rCapture(L"section", r_d().Some()) + rC(L'.')).Loop(3, 3) + rCapture(L"section", r_d().Some());
-	ThePatternsMustBeSame(code, node); // Clarity : [i l I 1] [0 O 8] 1234567890. {}[]()<>$*-+=/#_%^@\&|~?'"`!,.;:
-}
-
SAMPLE_CODE(TestMyTypefaceCodeSnippet, "Iosevka Slab", DARK) { // The quick brown fox jumps over the lazy dog.
-	const wchar_t* code = L"(<#part>\\d+)(<#capture>(<section>(<&part>)))((<&capture>).){3}(<&capture>)";
-	RegexNode node = (rCapture(L"section", r_d().Some()) + rC(L'.')).Loop(3, 3) + rCapture(L"section", r_d().Some());
-	ThePatternsMustBeSame(code, node); // Clarity : [i l I 1] [0 O 8] 1234567890. {}[]()<>$*-+=/#_%^@\&|~?'"`!,.;:
-}
-
SAMPLE_CODE(TestMyTypefaceCodeSnippet, "Iosevka Slab", LIGHT) { // The quick brown fox jumps over the lazy dog.
-	const wchar_t* code = L"(<#part>\\d+)(<#capture>(<section>(<&part>)))((<&capture>).){3}(<&capture>)";
-	RegexNode node = (rCapture(L"section", r_d().Some()) + rC(L'.')).Loop(3, 3) + rCapture(L"section", r_d().Some());
-	ThePatternsMustBeSame(code, node); // Clarity : [i l I 1] [0 O 8] 1234567890. {}[]()<>$*-+=/#_%^@\&|~?'"`!,.;:
-}
-
-
const languages = [
-	{lang: 'English',       sample: 'Shaw, those twelve beige hooks are joined if I patch a young, gooey mouth.'},
-	{lang: 'IPA',           sample: '[ɢʷɯʔ.nas.doːŋ.kʰlja] [ŋan.ȵʑi̯wo.ɕi̯uĕn.ɣwa]'},
-	{lang: 'Bulgarian',     sample: 'Я, пазачът Вальо уж бди, а скришом хапва кюфтенца зад щайгите.'},
-	{lang: 'Czech',         sample: 'Nechť již hříšné saxofony ďáblů rozezvučí síň úděsnými tóny waltzu, tanga a quickstepu.'},
-	{lang: 'Finnish',       sample: 'Charles Darwin jammaili Åken hevixylofonilla Qatarin yöpub Zeligissä.'},
-	{lang: 'French',        sample: 'Voix ambiguë d’un cœur qui au zéphyr préfère les jattes de kiwi.'},
-	{lang: 'German',        sample: 'Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich.'},
-	{lang: 'Greek',         sample: 'Ταχίστη αλώπηξ βαφής ψημένη γη, δρασκελίζει υπέρ νωθρού κυνός.'},
-	{lang: 'Ancient Greek', sample: 'Ἄδμηθ’, ὁρᾷς γὰρ τἀμὰ πράγμαθ’ ὡς ἔχει, λέξαι θέλω σοι πρὶν θανεῖν ἃ βούλομαι.'},
-	{lang: 'Hungarian',     sample: 'Jó foxim és don Quijote húszwattos lámpánál ülve egy pár bűvös cipőt készít.'},
-	{lang: 'Icelandic',     sample: 'Kæmi ný öxi hér, ykist þjófum nú bæði víl og ádrepa.'},
-	{lang: 'Irish',         sample: 'Ċuaiġ bé ṁórṡáċ le dlúṫspád fíorḟinn trí hata mo ḋea-ṗorcáin ḃig.'},
-	{lang: 'Latvian',       sample: 'Muļķa hipiji mēģina brīvi nogaršot celofāna žņaudzējčūsku.'},
-	{lang: 'Lithuanian',    sample: 'Įlinkdama fechtuotojo špaga sublykčiojusi pragręžė apvalų arbūzą.'},
-	{lang: 'Macedonian',    sample: 'Ѕидарски пејзаж: шугав билмез со чудење џвака ќофте и кељ на туѓ цех.'},
-	{lang: 'Norwegian',     sample: 'Jeg begynte å fortære en sandwich mens jeg kjørte taxi på vei til quiz'},
-	{lang: 'Polish',        sample: 'Pchnąć w tę łódź jeża lub ośm skrzyń fig.'},
-	{lang: 'Portuguese',    sample: 'Luís argüia à Júlia que «brações, fé, chá, óxido, pôr, zângão» eram palavras do português.'},
-	{lang: 'Romanian',      sample: 'Înjurând pițigăiat, zoofobul comandă vexat whisky și tequila.'},
-	{lang: 'Russian',       sample: 'Широкая электрификация южных губерний даст мощный толчок подъёму сельского хозяйства.'},
-	{lang: 'Serbian',       sample: 'Ајшо, лепото и чежњо, за љубав срца мога дођи у Хаџиће на кафу.'},
-	{lang: 'Spanish',       sample: 'Benjamín pidió una bebida de kiwi y fresa; Noé, sin vergüenza, la más exquisita champaña del menú.'},
-	{lang: 'Turkish',       sample: 'Pijamalı hasta yağız şoföre çabucak güvendi.'},
-	{lang: 'Ukrainian',     sample: 'Чуєш їх, доцю, га? Кумедна ж ти, прощайся без ґольфів!'}
-]
-
-
-
-float Fox.quick(h){ is_brown && it_jumps_over(dogs.lazy); }
-float Fox.quick(h){ is_brown && it_jumps_over(dogs.lazy); }
-float Fox.quick(h){ is_brown && it_jumps_over(dogs.lazy); }
-float Fox.quick(h){ is_brown && it_jumps_over(dogs.lazy); }
-float Fox.quick(h){ is_brown && it_jumps_over(dogs.lazy); }
-float Fox.quick(h){ is_brown && it_jumps_over(dogs.lazy); }
-float Fox.quick(h){ is_brown && it_jumps_over(dogs.lazy); }
-float Fox.quick(h){ is_brown && it_jumps_over(dogs.lazy); }
-float Fox.quick(h){ is_brown && it_jumps_over(dogs.lazy); }
-
-
Character Variants
-
    -
  1. -
    -
    a
    -
    -
    -
      -
    1. -
      cv01
      -
      a
      -
    2. -
    3. -
      cv02
      -
      a
      -
    4. -
    5. -
      VXBS
      -
      a
      -
    6. -
    7. -
      VXBU
      -
      a
      -
    8. -
    9. -
      VXCL
      -
      a
      -
    10. -
    11. -
      VXCM
      -
      a
      -
    12. -
    13. -
      VXCN
      -
      a
      -
    14. -
    15. -
      VXCO
      -
      a
      -
    16. -
  2. -
  3. -
    -
    b
    -
    -
    -
      -
    1. -
      VXBK
      -
      b
      -
    2. -
    3. -
      VXBL
      -
      b
      -
    4. -
    5. -
      VXBM
      -
      b
      -
    6. -
  4. -
  5. -
    -
    d
    -
    -
    -
      -
    1. -
      VXBN
      -
      d
      -
    2. -
    3. -
      VXBO
      -
      d
      -
    4. -
    5. -
      VXBP
      -
      d
      -
    6. -
    7. -
      VXBQ
      -
      d
      -
    8. -
  6. -
  7. -
    -
    f
    -
    -
    -
      -
    1. -
      cv52
      -
      f
      -
    2. -
    3. -
      cv53
      -
      f
      -
    4. -
    5. -
      cv84
      -
      f
      -
    6. -
    7. -
      VXAD
      -
      f
      -
    8. -
    9. -
      VXDD
      -
      f
      -
    10. -
  8. -
  9. -
    -
    g
    -
    -
    -
      -
    1. -
      cv11
      -
      g
      -
    2. -
    3. -
      cv12
      -
      g
      -
    4. -
    5. -
      cv24
      -
      g
      -
    6. -
    7. -
      VXCW
      -
      g
      -
    8. -
    9. -
      VXCX
      -
      g
      -
    10. -
  10. -
  11. -
    -
    h
    -
    -
    -
      -
    1. -
      VXCB
      -
      h
      -
    2. -
    3. -
      VXCC
      -
      h
      -
    4. -
  12. -
  13. -
    -
    i
    -
    -
    -
      -
    1. -
      cv03
      -
      i
      -
    2. -
    3. -
      cv04
      -
      i
      -
    4. -
    5. -
      cv05
      -
      i
      -
    6. -
    7. -
      cv06
      -
      i
      -
    8. -
    9. -
      cv56
      -
      i
      -
    10. -
    11. -
      cv88
      -
      i
      -
    12. -
    13. -
      VXAA
      -
      i
      -
    14. -
  14. -
  15. -
    -
    j
    -
    -
    -
      -
    1. -
      cv57
      -
      j
      -
    2. -
    3. -
      cv58
      -
      j
      -
    4. -
    5. -
      cv98
      -
      j
      -
    6. -
    7. -
      VXDE
      -
      j
      -
    8. -
    9. -
      VXDF
      -
      j
      -
    10. -
  16. -
  17. -
    -
    k
    -
    -
    -
      -
    1. -
      cv68
      -
      k
      -
    2. -
    3. -
      cv69
      -
      k
      -
    4. -
    5. -
      cv70
      -
      k
      -
      k
      -
    6. -
    7. -
      VXBR
      -
      k
      -
      k
      -
    8. -
  18. -
  19. -
    -
    l
    -
    -
    -
      -
    1. -
      cv07
      -
      l
      -
    2. -
    3. -
      cv08
      -
      l
      -
    4. -
    5. -
      cv09
      -
      l
      -
    6. -
    7. -
      cv10
      -
      l
      -
    8. -
    9. -
      cv27
      -
      l
      -
    10. -
    11. -
      cv28
      -
      l
      -
    12. -
    13. -
      cv59
      -
      l
      -
    14. -
    15. -
      VXDA
      -
      l
      -
    16. -
  20. -
  21. -
    -
    m
    -
    -
    -
      -
    1. -
      cv25
      -
      m
      -
    2. -
    3. -
      cv26
      -
      m
      -
    4. -
    5. -
      VXCD
      -
      m
      -
    6. -
    7. -
      VXCE
      -
      m
      -
    8. -
  22. -
  23. -
    -
    n
    -
    -
    -
      -
    1. -
      VXCF
      -
      n
      -
    2. -
    3. -
      VXCG
      -
      n
      -
    4. -
  24. -
  25. -
    -
    p
    -
    -
    -
      -
    1. -
      VXCP
      -
      p
      -
    2. -
    3. -
      VXCQ
      -
      p
      -
    4. -
    5. -
      VXCR
      -
      p
      -
    6. -
  26. -
  27. -
    -
    q
    -
    -
    -
      -
    1. -
      VXAZ
      -
      q
      -
    2. -
    3. -
      VXBA
      -
      q
      -
    4. -
    5. -
      VXCS
      -
      q
      -
    6. -
    7. -
      VXCT
      -
      q
      -
    8. -
    9. -
      VXCU
      -
      q
      -
    10. -
    11. -
      VXCV
      -
      q
      -
    12. -
  28. -
  29. -
    -
    r
    -
    -
    -
      -
    1. -
      cv85
      -
      r
      -
    2. -
    3. -
      cv86
      -
      r
      -
    4. -
    5. -
      cv87
      -
      r
      -
    6. -
  30. -
  31. -
    -
    t
    -
    -
    -
      -
    1. -
      cv40
      -
      t
      -
    2. -
    3. -
      cv41
      -
      t
      -
    4. -
    5. -
      VXDC
      -
      t
      -
    6. -
  32. -
  33. -
    -
    u
    -
    -
    -
      -
    1. -
      cv89
      -
      u
      -
    2. -
    3. -
      cv90
      -
      u
      -
    4. -
    5. -
      VXBT
      -
      u
      -
    6. -
  34. -
  35. -
    -
    v
    -
    -
    -
      -
    1. -
      cv71
      -
      v
      -
    2. -
    3. -
      cv72
      -
      v
      -
    4. -
  36. -
  37. -
    -
    w
    -
    -
    -
      -
    1. -
      cv75
      -
      w
      -
    2. -
    3. -
      cv76
      -
      w
      -
    4. -
    5. -
      VXCH
      -
      w
      -
    6. -
  38. -
  39. -
    -
    x
    -
    -
    -
      -
    1. -
      cv77
      -
      x
      -
    2. -
    3. -
      cv78
      -
      x
      -
    4. -
  40. -
  41. -
    -
    y
    -
    -
    -
      -
    1. -
      cv48
      -
      y
      -
    2. -
    3. -
      cv49
      -
      y
      -
    4. -
    5. -
      cv79
      -
      y
      -
    6. -
    7. -
      VXBF
      -
      y
      -
    8. -
  42. -
  43. -
    -
    z
    -
    -
    -
      -
    1. -
      VXBD
      -
      z
      -
    2. -
    3. -
      VXBE
      -
      z
      -
    4. -
    5. -
      VXBX
      -
      z
      -
    6. -
  44. -
  45. -
    -
    A
    -
    -
    -
      -
    1. -
      cv73
      -
      A
      -
    2. -
    3. -
      cv74
      -
      A
      -
    4. -
  46. -
  47. -
    -
    B
    -
    -
    -
      -
    1. -
      VXAP
      -
      B
      -
    2. -
    3. -
      VXAQ
      -
      B
      -
    4. -
  48. -
  49. -
    -
    D
    -
    -
    -
      -
    1. -
      VXBG
      -
      D
      -
    2. -
    3. -
      VXBH
      -
      D
      -
    4. -
  50. -
  51. -
    -
    G
    -
    -
    -
      -
    1. -
      cv91
      -
      G
      -
    2. -
    3. -
      cv92
      -
      G
      -
    4. -
  52. -
  53. -
    -
    J
    -
    -
    -
      -
    1. -
      VXBY
      -
      J
      -
    2. -
    3. -
      VXBZ
      -
      J
      -
    4. -
    5. -
      VXDA
      -
      J
      -
    6. -
    7. -
      VXDB
      -
      J
      -
    8. -
  54. -
  55. -
    -
    M
    -
    -
    -
      -
    1. -
      VXCI
      -
      M
      -
    2. -
    3. -
      VXCJ
      -
      M
      -
    4. -
  56. -
  57. -
    -
    Q
    -
    -
    -
      -
    1. -
      cv42
      -
      Q
      -
    2. -
    3. -
      cv43
      -
      Q
      -
    4. -
    5. -
      VXCA
      -
      Q
      -
    6. -
  58. -
  59. -
    -
    R
    -
    -
    -
      -
    1. -
      cv82
      -
      R
      -
    2. -
    3. -
      cv83
      -
      R
      -
    4. -
  60. -
  61. -
    -
    Y
    -
    -
    -
      -
    1. -
      cv80
      -
      Y
      -
    2. -
    3. -
      cv81
      -
      Y
      -
    4. -
  62. -
  63. -
    -
    0
    -
    -
    -
      -
    1. -
      cv13
      -
      0
      -
    2. -
    3. -
      cv14
      -
      0
      -
    4. -
    5. -
      cv15
      -
      0
      -
    6. -
    7. -
      cv93
      -
      0
      -
    8. -
    9. -
      VXAB
      -
      0
      -
    10. -
  64. -
  65. -
    -
    1
    -
    -
    -
      -
    1. -
      cv50
      -
      1
      -
    2. -
    3. -
      cv51
      -
      1
      -
    4. -
    5. -
      VXAM
      -
      1
      -
    6. -
  66. -
  67. -
    -
    3
    -
    -
    -
      -
    1. -
      cv46
      -
      3
      -
    2. -
    3. -
      cv47
      -
      3
      -
    4. -
  68. -
  69. -
    -
    4
    -
    -
    -
      -
    1. -
      VXAR
      -
      4
      -
    2. -
    3. -
      VXAS
      -
      4
      -
    4. -
    5. -
      VXAT
      -
      4
      -
    6. -
    7. -
      VXAU
      -
      4
      -
    8. -
    9. -
      VXAV
      -
      4
      -
    10. -
    11. -
      VXAW
      -
      4
      -
    12. -
  70. -
  71. -
    -
    6
    -
    -
    -
      -
    1. -
      VXAE
      -
      6
      -
    2. -
    3. -
      VXAF
      -
      6
      -
    4. -
    5. -
      VXBB
      -
      6
      -
    6. -
  72. -
  73. -
    -
    7
    -
    -
    -
      -
    1. -
      cv64
      -
      7
      -
    2. -
    3. -
      cv65
      -
      7
      -
    4. -
    5. -
      VXAX
      -
      7
      -
    6. -
    7. -
      VXAY
      -
      7
      -
    8. -
  74. -
  75. -
    -
    9
    -
    -
    -
      -
    1. -
      cv96
      -
      9
      -
    2. -
    3. -
      cv97
      -
      9
      -
    4. -
    5. -
      VXBC
      -
      9
      -
    6. -
  76. -
  77. -
    -
    ß
    -
    -
    -
      -
    1. -
      cv34
      -
      ß
      -
    2. -
    3. -
      cv35
      -
      ß
      -
    4. -
    5. -
      VXAC
      -
      ß
      -
    6. -
  78. -
  79. -
    -
    λ
    -
    -
    -
      -
    1. -
      cv94
      -
      λ
      -
    2. -
    3. -
      cv95
      -
      λ
      -
    4. -
  80. -
  81. -
    -
    ~
    -
    -
    -
      -
    1. -
      cv16
      -
      ~
      -
    2. -
    3. -
      cv17
      -
      ~
      -
    4. -
  82. -
  83. -
    -
    *
    -
    -
    -
      -
    1. -
      cv18
      -
      *
      -
    2. -
    3. -
      cv19
      -
      *
      -
    4. -
    5. -
      cv60
      -
      *
      -
    6. -
    7. -
      cv61
      -
      *
      -
    8. -
    9. -
      VXBV
      -
      *
      -
    10. -
    11. -
      VXBW
      -
      *
      -
    12. -
  84. -
  85. -
    -
    _
    -
    -
    -
      -
    1. -
      cv20
      -
      _
      -
    2. -
    3. -
      cv21
      -
      _
      -
    4. -
    5. -
      cv99
      -
      _
      -
    6. -
  86. -
  87. -
    -
    -
    -
    -
      -
    1. -
      cv22
      -
      -
    2. -
    3. -
      cv23
      -
      -
    4. -
  88. -
  89. -
    -
    ^
    -
    -
    -
      -
    1. -
      cv29
      -
      ^
      -
    2. -
    3. -
      cv30
      -
      ^
      -
    4. -
  90. -
  91. -
    -
    (
    -
    )
    -
    -
    -
      -
    1. -
      VXAN
      -
      (
      -
      )
      -
    2. -
    3. -
      VXAO
      -
      (
      -
      )
      -
    4. -
  92. -
  93. -
    -
    {
    -
    }
    -
    -
    -
      -
    1. -
      cv36
      -
      {
      -
      }
      -
    2. -
    3. -
      cv37
      -
      {
      -
      }
      -
    4. -
  94. -
  95. -
    -
    #
    -
    -
    -
      -
    1. -
      cv44
      -
      #
      -
    2. -
    3. -
      cv45
      -
      #
      -
    4. -
    5. -
      VXBI
      -
      #
      -
    6. -
    7. -
      VXBJ
      -
      #
      -
    8. -
  96. -
  97. -
    -
    &
    -
    -
    -
      -
    1. -
      VXAG
      -
      &
      -
    2. -
    3. -
      VXAH
      -
      &
      -
    4. -
    5. -
      VXAI
      -
      &
      -
    6. -
    7. -
      VXAJ
      -
      &
      -
    8. -
    9. -
      VXAK
      -
      &
      -
    10. -
    11. -
      VXAL
      -
      &
      -
    12. -
  98. -
  99. -
    -
    @
    -
    -
    -
      -
    1. -
      cv31
      -
      @
      -
    2. -
    3. -
      cv32
      -
      @
      -
    4. -
    5. -
      cv33
      -
      @
      -
    6. -
  100. -
  101. -
    -
    $
    -
    -
    -
      -
    1. -
      cv38
      -
      $
      -
    2. -
    3. -
      cv39
      -
      $
      -
    4. -
    5. -
      cv54
      -
      $
      -
    6. -
    7. -
      cv55
      -
      $
      -
    8. -
  102. -
  103. -
    -
    %
    -
    -
    -
      -
    1. -
      cv62
      -
      %
      -
    2. -
    3. -
      cv63
      -
      %
      -
    4. -
    5. -
      VXCK
      -
      %
      -
    6. -
  104. -
  105. -
    -
    |
    -
    -
    -
      -
    1. -
      VXCY
      -
      |
      -
      |
      -
    2. -
    3. -
      VXCZ
      -
      |
      -
      |
      -
    4. -
  106. -
  107. -
    -
    <=
    -
    >=
    -
    -
    -
      -
    1. -
      cv66
      -
      <=
      -
      >=
      -
    2. -
    3. -
      cv67
      -
      <=
      -
      >=
      -
    4. -
  108. -
-
-
-
Stylistic Sets
-
    -
  1. - offDefault - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ -
  2. -
  3. - ss01Andale Mono Style - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ -
  4. -
  5. - ss02Anonymous Pro Style - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ -
  6. -
  7. - ss03Consolas Style - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ -
  8. -
  9. - ss04Menlo Style - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ -
  10. -
  11. - ss05Fira Mono Style - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ -
  12. -
  13. - ss06Liberation Mono Style - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ -
  14. -
  15. - ss07Monaco Style - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ -
  16. -
  17. - ss08Pragmata Pro Style - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ -
  18. -
  19. - ss09Source Code Pro Style - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ -
  20. -
  21. - ss10Envy Code R Style - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ -
  22. -
  23. - ss11X Window Style - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ -
  24. -
  25. - ss12Ubuntu Mono Style - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ -
  26. -
  27. - ss13Lucida Style - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ -
  28. -
  29. - ss14JetBrains Mono Style - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ -
  30. -
  31. - ss20Curly Style - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ - @real fox.quick(h){ *is_brown && it_jumps_over(dogs.lazy) } 0123456789 ABCKRWXYZ -
  32. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Feature TagDescription
calt offLigation Off
-
-<< -< -<- <-- <--- <<- <- -> ->> --> ---> ->- >- >>- <-> <--> <---> <----> <!--
-
=<< =< =<= <== <=== <<= <= => =>> ==> ===> =>= >= >>= <=> <==> <===> <====> <!---
-
<------ ------> <=====> <~~ <~ ~> ~~> :: ::: \/ /\ == != /= ~= <> === !== =/= =!=
-
:= :- :+ <* <*> *> <| <|> |> <. <.> .> +: -: =: <******> (* comm *) ++ +++ |- -|
-
caltDefault setting in text editors
-
-<< -< -<- <-- <--- <<- <- -> ->> --> ---> ->- >- >>- <-> <--> <---> <----> <!--
-
=<< =< =<= <== <=== <<= <= => =>> ==> ===> =>= >= >>= <=> <==> <===> <====> <!---
-
<------ ------> <=====> <~~ <~ ~> ~~> :: ::: \/ /\ == != /= ~= <> === !== =/= =!=
-
:= :- :+ <* <*> *> <| <|> |> <. <.> .> +: -: =: <******> (* comm *) ++ +++ |- -|
-
dligDiscretionary ligatures
-
-<< -< -<- <-- <--- <<- <- -> ->> --> ---> ->- >- >>- <-> <--> <---> <----> <!--
-
=<< =< =<= <== <=== <<= <= => =>> ==> ===> =>= >= >>= <=> <==> <===> <====> <!---
-
<------ ------> <=====> <~~ <~ ~> ~~> :: ::: \/ /\ == != /= ~= <> === !== =/= =!=
-
:= :- :+ <* <*> *> <| <|> |> <. <.> .> +: -: =: <******> (* comm *) ++ +++ |- -|
-
CLIK, JSPT, PHPXC-Like, JavaScript, PHP
-
-<< -< -<- <-- <--- <<- <- -> ->> --> ---> ->- >- >>- <-> <--> <---> <----> <!--
-
=<< =< =<= <== <=== <<= <= => =>> ==> ===> =>= >= >>= <=> <==> <===> <====> <!---
-
<------ ------> <=====> <~~ <~ ~> ~~> :: ::: \/ /\ == != /= ~= <> === !== =/= =!=
-
:= :- :+ <* <*> *> <| <|> |> <. <.> .> +: -: =: <******> (* comm *) ++ +++ |- -|
-
MLXX, FSHPML, F#
-
-<< -< -<- <-- <--- <<- <- -> ->> --> ---> ->- >- >>- <-> <--> <---> <----> <!--
-
=<< =< =<= <== <=== <<= <= => =>> ==> ===> =>= >= >>= <=> <==> <===> <====> <!---
-
<------ ------> <=====> <~~ <~ ~> ~~> :: ::: \/ /\ == != /= ~= <> === !== =/= =!=
-
:= :- :+ <* <*> *> <| <|> |> <. <.> .> +: -: =: <******> (* comm *) ++ +++ |- -|
-
FSTAF*
-
-<< -< -<- <-- <--- <<- <- -> ->> --> ---> ->- >- >>- <-> <--> <---> <----> <!--
-
=<< =< =<= <== <=== <<= <= => =>> ==> ===> =>= >= >>= <=> <==> <===> <====> <!---
-
<------ ------> <=====> <~~ <~ ~> ~~> :: ::: \/ /\ == != /= ~= <> === !== =/= =!=
-
:= :- :+ <* <*> *> <| <|> |> <. <.> .> +: -: =: <******> (* comm *) ++ +++ |- -|
-
HSKL, IDRS, ELMX, PURSHaskell, Idris, Elm, PureScript
-
-<< -< -<- <-- <--- <<- <- -> ->> --> ---> ->- >- >>- <-> <--> <---> <----> <!--
-
=<< =< =<= <== <=== <<= <= => =>> ==> ===> =>= >= >>= <=> <==> <===> <====> <!---
-
<------ ------> <=====> <~~ <~ ~> ~~> :: ::: \/ /\ == != /= ~= <> === !== =/= =!=
-
:= :- :+ <* <*> *> <| <|> |> <. <.> .> +: -: =: <******> (* comm *) ++ +++ |- -|
-
SWFTSwift
-
-<< -< -<- <-- <--- <<- <- -> ->> --> ---> ->- >- >>- <-> <--> <---> <----> <!--
-
=<< =< =<= <== <=== <<= <= => =>> ==> ===> =>= >= >>= <=> <==> <===> <====> <!---
-
<------ ------> <=====> <~~ <~ ~> ~~> :: ::: \/ /\ == != /= ~= <> === !== =/= =!=
-
:= :- :+ <* <*> *> <| <|> |> <. <.> .> +: -: =: <******> (* comm *) ++ +++ |- -|
-
COQXCoq
-
-<< -< -<- <-- <--- <<- <- -> ->> --> ---> ->- >- >>- <-> <--> <---> <----> <!--
-
=<< =< =<= <== <=== <<= <= => =>> ==> ===> =>= >= >>= <=> <==> <===> <====> <!---
-
<------ ------> <=====> <~~ <~ ~> ~~> :: ::: \/ /\ == != /= ~= <> === !== =/= =!=
-
:= :- :+ <* <*> *> <| <|> |> <. <.> .> +: -: =: <******> (* comm *) ++ +++ |- -|
-
MTLBMatlab
-
-<< -< -<- <-- <--- <<- <- -> ->> --> ---> ->- >- >>- <-> <--> <---> <----> <!--
-
=<< =< =<= <== <=== <<= <= => =>> ==> ===> =>= >= >>= <=> <==> <===> <====> <!---
-
<------ ------> <=====> <~~ <~ ~> ~~> :: ::: \/ /\ == != /= ~= <> === !== =/= =!=
-
:= :- :+ <* <*> *> <| <|> |> <. <.> .> +: -: =: <******> (* comm *) ++ +++ |- -|
-
-
-
- -MagMagMagMagMagMagMagMagMag - -MagMagMagMagMagMagMagMagMag - -MagMagMagMagMagMagMagMagMag -
-
- -MagMagMagMagMagMagMagMagMag - -MagMagMagMagMagMagMagMagMag - -MagMagMagMagMagMagMagMagMag -
-
-

-ABC.DEF.GHI.JKL.MNO.PQRS.TUV.WXYZ
-abc.def.ghi.jkl.mno.pqrs.tuv.wxyz
-1234567890 ,._-+= >< ¯-¬_ >~–÷+×<
-{}[]()<> $*-+=/#_%^@\&|~?'" !,.;: -

-

-!iIlL17|¦ coO08BbDQ $5SZ2zsz 96G&
-dbqp E3 g9q CGQ vvw VVW \/V <= >=

-
- - - \ No newline at end of file diff --git a/snapshot/packaging-tasks.json b/snapshot/packaging-tasks.json deleted file mode 100644 index 70d5d11a1..000000000 --- a/snapshot/packaging-tasks.json +++ /dev/null @@ -1,339 +0,0 @@ -[ - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "name": "iosevka" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on", - "name": "iosevka-fixed" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on", - "name": "iosevka-term" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka-slab", - "name": "iosevka-slab" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka-slab", - "applyFeature": "\"NWID\" on", - "name": "iosevka-fixed-slab" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka-slab", - "applyFeature": "\"NWID\" on", - "name": "iosevka-term-slab" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"ss20\" on", - "name": "iosevka-curly" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss20\" on", - "name": "iosevka-fixed-curly" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss20\" on", - "name": "iosevka-term-curly" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka-slab", - "applyFeature": "\"ss20\" on", - "name": "iosevka-curly-slab" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka-slab", - "applyFeature": "\"NWID\" on, \"ss20\" on", - "name": "iosevka-fixed-curly-slab" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka-slab", - "applyFeature": "\"NWID\" on, \"ss20\" on", - "name": "iosevka-term-curly-slab" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"ss01\" on", - "name": "iosevka-ss01" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss01\" on", - "name": "iosevka-fixed-ss01" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss01\" on", - "name": "iosevka-term-ss01" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"ss02\" on", - "name": "iosevka-ss02" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss02\" on", - "name": "iosevka-fixed-ss02" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss02\" on", - "name": "iosevka-term-ss02" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"ss03\" on", - "name": "iosevka-ss03" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss03\" on", - "name": "iosevka-fixed-ss03" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss03\" on", - "name": "iosevka-term-ss03" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"ss04\" on", - "name": "iosevka-ss04" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss04\" on", - "name": "iosevka-fixed-ss04" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss04\" on", - "name": "iosevka-term-ss04" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"ss05\" on", - "name": "iosevka-ss05" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss05\" on", - "name": "iosevka-fixed-ss05" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss05\" on", - "name": "iosevka-term-ss05" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"ss06\" on", - "name": "iosevka-ss06" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss06\" on", - "name": "iosevka-fixed-ss06" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss06\" on", - "name": "iosevka-term-ss06" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"ss07\" on", - "name": "iosevka-ss07" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss07\" on", - "name": "iosevka-fixed-ss07" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss07\" on", - "name": "iosevka-term-ss07" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"ss08\" on", - "name": "iosevka-ss08" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss08\" on", - "name": "iosevka-fixed-ss08" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss08\" on", - "name": "iosevka-term-ss08" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"ss09\" on", - "name": "iosevka-ss09" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss09\" on", - "name": "iosevka-fixed-ss09" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss09\" on", - "name": "iosevka-term-ss09" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"ss10\" on", - "name": "iosevka-ss10" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss10\" on", - "name": "iosevka-fixed-ss10" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss10\" on", - "name": "iosevka-term-ss10" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"ss11\" on", - "name": "iosevka-ss11" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss11\" on", - "name": "iosevka-fixed-ss11" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss11\" on", - "name": "iosevka-term-ss11" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"ss12\" on", - "name": "iosevka-ss12" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss12\" on", - "name": "iosevka-fixed-ss12" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss12\" on", - "name": "iosevka-term-ss12" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"ss13\" on", - "name": "iosevka-ss13" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss13\" on", - "name": "iosevka-fixed-ss13" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss13\" on", - "name": "iosevka-term-ss13" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"ss14\" on", - "name": "iosevka-ss14" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss14\" on", - "name": "iosevka-fixed-ss14" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka", - "applyFeature": "\"NWID\" on, \"ss14\" on", - "name": "iosevka-term-ss14" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka-aile", - "name": "iosevka-aile" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka-etoile", - "name": "iosevka-etoile" - }, - { - "el": "#packaging-sampler", - "applyClass": "iosevka-sparkle", - "name": "iosevka-sparkle" - } -] \ No newline at end of file diff --git a/utility/generate-snapshot-page/index.js b/utility/generate-snapshot-page/index.js index 6a397f171..f69fb9bce 100644 --- a/utility/generate-snapshot-page/index.js +++ b/utility/generate-snapshot-page/index.js @@ -4,6 +4,9 @@ const path = require("path"); const parseVariantsData = require("../export-data/parse-variants-data"); const getLigationData = require("../export-data/ligation-data"); +const inputPath = process.argv[2]; +const outputPath = process.argv[3]; + main().catch(e => { console.error(e); process.exit(1); @@ -13,7 +16,7 @@ main().catch(e => { async function main() { const weightGrades = [100, 200, 300, 400, 500, 600, 700, 800, 900]; - const templatePath = path.join(__dirname, "templates/index.ejs"); + const templatePath = path.join(inputPath, "index.ejs"); const html = await ejs.renderFile(templatePath, { ...(await parseVariantsData()), ligation: await getLigationData(), @@ -26,5 +29,5 @@ async function main() { .replace(/\n/g, "
"); } }); - await fs.writeFile(path.join(__dirname, "../../snapshot/index.html"), html); + await fs.writeFile(outputPath, html); } diff --git a/verdafile.js b/verdafile.js index f7bd01274..328adfb22 100644 --- a/verdafile.js +++ b/verdafile.js @@ -17,7 +17,7 @@ const toml = require("@iarna/toml"); const BUILD = ".build"; const DIST = "dist"; -const DIST_COLLECT = "dist/.collect"; +const SNAPSHOT_TMP = ".build/snapshot"; const DIST_SUPER_TTC = "dist/.super-ttc"; const ARCHIVE_DIR = "release-archives"; @@ -719,16 +719,19 @@ const SampleImagesPre = task(`sample-images:pre`, async target => { GroupContents`iosevka-aile`, GroupContents`iosevka-etoile`, GroupContents`iosevka-sparkle`, + SnapShotStatic("index.js"), + SnapShotStatic("get-snap.js"), SnapShotJson, SnapShotCSS, SnapShotHtml, - de`images` + de`images`, + de(SNAPSHOT_TMP) ); - await cp(`${DIST}/${sans}`, `snapshot/${sans}`); - await cp(`${DIST}/${slab}`, `snapshot/${slab}`); - await cp(`${DIST}/${aile}`, `snapshot/${aile}`); - await cp(`${DIST}/${etoile}`, `snapshot/${etoile}`); - await cp(`${DIST}/${sparkle}`, `snapshot/${sparkle}`); + await cp(`${DIST}/${sans}`, `${SNAPSHOT_TMP}/${sans}`); + await cp(`${DIST}/${slab}`, `${SNAPSHOT_TMP}/${slab}`); + await cp(`${DIST}/${aile}`, `${SNAPSHOT_TMP}/${aile}`); + await cp(`${DIST}/${etoile}`, `${SNAPSHOT_TMP}/${etoile}`); + await cp(`${DIST}/${sparkle}`, `${SNAPSHOT_TMP}/${sparkle}`); }); const PackageSnapshotConfig = computed(`package-snapshot-image-config`, async target => { @@ -746,25 +749,38 @@ const PackageSnapshotConfig = computed(`package-snapshot-image-config`, async ta } return cfg; }); -const SnapShotJson = file(`snapshot/packaging-tasks.json`, async (target, out) => { - const [cfg] = await target.need(PackageSnapshotConfig); +const SnapShotJson = file(`${SNAPSHOT_TMP}/packaging-tasks.json`, async (target, out) => { + const [cfg] = await target.need(PackageSnapshotConfig, de(out.dir)); fs.writeFileSync(out.full, JSON.stringify(cfg, null, " ")); }); -const SnapShotHtml = file(`snapshot/index.html`, async target => { - await target.need(Parameters, UtilScripts); +const SnapShotHtml = file(`${SNAPSHOT_TMP}/index.html`, async (target, out) => { + await target.need(Parameters, UtilScripts, SnapshotTemplates, de(out.dir)); const [cm] = await target.need(BuildCM("iosevka", "iosevka-regular")); const [cmi] = await target.need(BuildCM("iosevka", "iosevka-italic")); const [cmo] = await target.need(BuildCM("iosevka", "iosevka-oblique")); - await run(`node`, `utility/generate-snapshot-page/index.js`); + await run( + `node`, + `utility/generate-snapshot-page/index.js`, + "snapshot-src/templates", + out.full + ); await run(`node`, `utility/amend-readme/index`, cm.full, cmi.full, cmo.full); }); -const SnapShotCSS = file(`snapshot/index.css`, async target => { - await target.need(sfu`snapshot/index.styl`); - await run(`npx`, `stylus`, `snapshot/index.styl`, `-c`); +const SnapShotStatic = file.make( + x => `${SNAPSHOT_TMP}/${x}`, + async (target, out) => { + const [$1] = await target.need(sfu`snapshot-src/${out.base}`, de(out.dir)); + await cp($1.full, `${out.dir}/${$1.base}`); + } +); +const SnapShotCSS = file(`${SNAPSHOT_TMP}/index.css`, async (target, out) => { + const [$1] = await target.need(sfu`snapshot-src/index.styl`, de(out.dir)); + await cp($1.full, `${out.dir}/${$1.base}`); + await run(`npx`, `stylus`, `${out.dir}/${$1.base}`, `-c`); }); const TakeSampleImages = task(`sample-images:take`, async target => { await target.need(SampleImagesPre); - await cd(`snapshot`).run("npx", "electron", "get-snap.js", "../images"); + await cd(SNAPSHOT_TMP).run("npx", "electron", "get-snap.js", "../../images"); }); const ScreenShot = file.glob(`images/*.png`, async (target, { full }) => { await target.need(TakeSampleImages); @@ -823,9 +839,9 @@ const ReleaseNotes = task(`release:release-note`, async t => { }); phony(`clean`, async () => { - await rm(`build`); - await rm(`dist`); - await rm(`release-archives`); + await rm(BUILD); + await rm(DIST); + await rm(ARCHIVE_DIR); build.deleteJournal(); }); phony(`release`, async target => { @@ -850,6 +866,14 @@ const UtilScriptFiles = computed("util-script-files", async target => { ); return [...js, ...ejs, ...md]; }); +const SnapshotTemplateFiles = computed("snapshot-templates", async target => { + const [js, ejs, md] = await target.need( + ScriptsUnder("js", "snapshot-src"), + ScriptsUnder("ejs", "snapshot-src"), + ScriptsUnder("md", "snapshot-src") + ); + return [...js, ...ejs, ...md]; +}); const ScriptFiles = computed.group("script-files", async (target, ext) => { const [ss] = await target.need(ScriptsUnder(ext, `font-src`)); return ss; @@ -881,7 +905,11 @@ const Scripts = task("scripts", async target => { }); const UtilScripts = task("util-scripts", async target => { const [files] = await target.need(UtilScriptFiles); - await target.need(files.map(f => fu`${f}`)); + await target.need(files.map(fu)); +}); +const SnapshotTemplates = task("snapshot-templates", async target => { + const [files] = await target.need(SnapshotTemplateFiles); + await target.need(files.map(fu)); }); const Parameters = task(`meta:parameters`, async target => { await target.need(