jekyll-theme-hydejack 8.3.2 → 8.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +26 -27
  3. data/_includes/body/footer.html +1 -1
  4. data/_includes/head/links.html +1 -1
  5. data/_includes/head/meta.html +5 -1
  6. data/_includes/head/styles.html +1 -1
  7. data/_includes/header.txt +1 -1
  8. data/_includes/scripts.html +33 -0
  9. data/_layouts/compress.html +1 -1
  10. data/assets/bower_components/katex/.bower.json +6 -6
  11. data/assets/bower_components/katex/bower.json +1 -1
  12. data/assets/bower_components/katex/dist/contrib/auto-render.js +4 -0
  13. data/assets/bower_components/katex/dist/contrib/auto-render.min.js +1 -1
  14. data/assets/bower_components/katex/dist/contrib/auto-render.mjs +215 -0
  15. data/assets/bower_components/katex/dist/contrib/copy-tex.js +9 -4
  16. data/assets/bower_components/katex/dist/contrib/copy-tex.min.css +1 -1
  17. data/assets/bower_components/katex/dist/contrib/copy-tex.min.js +1 -1
  18. data/assets/bower_components/katex/dist/contrib/copy-tex.mjs +85 -0
  19. data/assets/bower_components/katex/dist/contrib/mathtex-script-type.min.js +1 -1
  20. data/assets/bower_components/katex/dist/contrib/mathtex-script-type.mjs +24 -0
  21. data/assets/bower_components/katex/dist/contrib/mhchem.js +3241 -0
  22. data/assets/bower_components/katex/dist/contrib/mhchem.min.js +1 -0
  23. data/assets/bower_components/katex/dist/contrib/mhchem.mjs +3109 -0
  24. data/assets/bower_components/katex/dist/fonts/KaTeX_AMS-Regular.ttf +0 -0
  25. data/assets/bower_components/katex/dist/fonts/KaTeX_AMS-Regular.woff +0 -0
  26. data/assets/bower_components/katex/dist/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  27. data/assets/bower_components/katex/dist/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  28. data/assets/bower_components/katex/dist/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  29. data/assets/bower_components/katex/dist/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  30. data/assets/bower_components/katex/dist/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  31. data/assets/bower_components/katex/dist/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  32. data/assets/bower_components/katex/dist/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  33. data/assets/bower_components/katex/dist/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  34. data/assets/bower_components/katex/dist/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  35. data/assets/bower_components/katex/dist/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  36. data/assets/bower_components/katex/dist/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  37. data/assets/bower_components/katex/dist/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  38. data/assets/bower_components/katex/dist/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  39. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-Bold.ttf +0 -0
  40. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-Bold.woff +0 -0
  41. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-Bold.woff2 +0 -0
  42. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  43. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  44. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  45. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-Italic.ttf +0 -0
  46. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-Italic.woff +0 -0
  47. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-Italic.woff2 +0 -0
  48. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-Regular.ttf +0 -0
  49. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-Regular.woff +0 -0
  50. data/assets/bower_components/katex/dist/fonts/KaTeX_Main-Regular.woff2 +0 -0
  51. data/assets/bower_components/katex/dist/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  52. data/assets/bower_components/katex/dist/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  53. data/assets/bower_components/katex/dist/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  54. data/assets/bower_components/katex/dist/fonts/KaTeX_Math-Italic.ttf +0 -0
  55. data/assets/bower_components/katex/dist/fonts/KaTeX_Math-Italic.woff +0 -0
  56. data/assets/bower_components/katex/dist/fonts/KaTeX_Math-Italic.woff2 +0 -0
  57. data/assets/bower_components/katex/dist/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  58. data/assets/bower_components/katex/dist/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  59. data/assets/bower_components/katex/dist/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  60. data/assets/bower_components/katex/dist/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  61. data/assets/bower_components/katex/dist/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  62. data/assets/bower_components/katex/dist/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  63. data/assets/bower_components/katex/dist/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  64. data/assets/bower_components/katex/dist/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  65. data/assets/bower_components/katex/dist/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  66. data/assets/bower_components/katex/dist/fonts/KaTeX_Script-Regular.ttf +0 -0
  67. data/assets/bower_components/katex/dist/fonts/KaTeX_Script-Regular.woff +0 -0
  68. data/assets/bower_components/katex/dist/fonts/KaTeX_Script-Regular.woff2 +0 -0
  69. data/assets/bower_components/katex/dist/fonts/KaTeX_Size1-Regular.ttf +0 -0
  70. data/assets/bower_components/katex/dist/fonts/KaTeX_Size1-Regular.woff +0 -0
  71. data/assets/bower_components/katex/dist/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  72. data/assets/bower_components/katex/dist/fonts/KaTeX_Size2-Regular.ttf +0 -0
  73. data/assets/bower_components/katex/dist/fonts/KaTeX_Size2-Regular.woff +0 -0
  74. data/assets/bower_components/katex/dist/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  75. data/assets/bower_components/katex/dist/fonts/KaTeX_Size3-Regular.ttf +0 -0
  76. data/assets/bower_components/katex/dist/fonts/KaTeX_Size3-Regular.woff +0 -0
  77. data/assets/bower_components/katex/dist/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  78. data/assets/bower_components/katex/dist/fonts/KaTeX_Size4-Regular.ttf +0 -0
  79. data/assets/bower_components/katex/dist/fonts/KaTeX_Size4-Regular.woff +0 -0
  80. data/assets/bower_components/katex/dist/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  81. data/assets/bower_components/katex/dist/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  82. data/assets/bower_components/katex/dist/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  83. data/assets/bower_components/katex/dist/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  84. data/assets/bower_components/katex/dist/katex.css +8 -4
  85. data/assets/bower_components/katex/dist/katex.js +470 -414
  86. data/assets/bower_components/katex/dist/katex.min.css +1 -1
  87. data/assets/bower_components/katex/dist/katex.min.js +1 -1
  88. data/assets/bower_components/katex/dist/katex.mjs +495 -456
  89. data/assets/bower_components/katex/yarn.lock +3091 -2622
  90. data/assets/css/{hydejack-8.3.2.css → hydejack-7.5.2.css} +0 -0
  91. data/assets/css/hydejack-8.4.0.css +3 -0
  92. data/assets/js/hydejack-8.4.0.js +47 -0
  93. data/assets/version.json +1 -1
  94. metadata +12 -5
  95. data/assets/bower_components/katex/dist/README.md +0 -90
  96. data/assets/bower_components/katex/lint_blacklist.txt +0 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: db6d56c0ff6f36a1d8a1ae3a96f38d11cbb7bfaa
4
- data.tar.gz: b3d902d9f740f97e9ebd0f794491eda6dcc09d32
3
+ metadata.gz: 12a2ea5a7563b85475351cfeb46e01ff40521977
4
+ data.tar.gz: 85c04dea0b8e7be84303a8dae2eb55af0f0dce30
5
5
  SHA512:
6
- metadata.gz: deab581627b6b013b73d2326ae1bca464a0ddeacc7735252da51288f9b644d1c28a0c9e2d4b777b7be34a1401d2ca2b3a9096a6c39460c027ef9964fffcfeb84
7
- data.tar.gz: 708bee55f03e3fa5c98d725d9fca84bb79cb8e42d1940c956bab4f6b38366060cf18cee583f53dccc0eac41924425a7c1d3b86b6680612b029c035b78a753df9
6
+ metadata.gz: 58910d20fddb272eed7b832918b40648aab4aab3e4e2176367c9ab516e889e6648f9789b9541fc883ac48ad3e30ff664141c5b78d8db0006de55e96e88f1f60a
7
+ data.tar.gz: 5f04362e44fe40d162277de2aa1847cb19ef5855c9e5e04ef9f4761d0152b67808156f561aa21381c54b793338ee7ab261cddef7cfba86bec953b7f7fb3442a6
data/README.md CHANGED
@@ -14,9 +14,25 @@ Hydejack's cover page on a variety of screens.
14
14
 
15
15
  There are two versions of **Hydejack**: The base version is free, while features that are specific to *professionals* are a payed upgrade.
16
16
 
17
- [**Download Free**][kit]
18
- – or –
19
- [**Buy PRO**][buy]
17
+ | | Free | PRO |
18
+ |:-----------------------|:--------------:|:--------:|
19
+ | Blog | ✔ | ✔ |
20
+ | [Features] | ✔ | ✔ |
21
+ | [Portfolio] | | ✔ |
22
+ | [Resume] | | ✔ |
23
+ | [Welcome] | | ✔ |
24
+ | [Newsletter Box][news] | | ✔ |
25
+ | [Custom Forms][forms] | | ✔ |
26
+ | Dark Mode | | ✔ |
27
+ | Cookie Banner | | ✔ |
28
+ | Offline Support | | ✔ |
29
+ | No Hydejack Branding | | ✔ |
30
+ | License | [GPL-3.0][lic] | [PRO] |
31
+ | Source | [GitHub][src] | Included |
32
+ | Support[^1] | No | No |
33
+ | Price | Free | $59 |
34
+ | | [**Download**][kit] <br/>-- or --<br/> [![Deploy to Netlify][dtn]][nfy] | [**Buy PRO**][buy] |
35
+
20
36
 
21
37
 
22
38
  ## A Free Blogging Theme
@@ -64,32 +80,12 @@ They say math is beautiful — and with **Hydejack**'s [math support][latex] it'
64
80
  Hydejack uses KaTeX to efficiently render math.
65
81
 
66
82
 
67
- <!-- $$
68
- \begin{aligned}
69
- \phi(x,y) &= \phi \left(\sum_{i=1}^n x_ie_i, \sum_{j=1}^n y_je_j \right) \\[2em]
70
- &= \sum_{i=1}^n \sum_{j=1}^n x_i y_j \phi(e_i, e_j) \\[2em]
71
- &= (x_1, \ldots, x_n)
72
- \left(\begin{array}{ccc}
73
- \phi(e_1, e_1) & \cdots & \phi(e_1, e_n) \\
74
- \vdots & \ddots & \vdots \\
75
- \phi(e_n, e_1) & \cdots & \phi(e_n, e_n)
76
- \end{array}\right)
77
- \left(\begin{array}{c}
78
- y_1 \\
79
- \vdots \\
80
- y_n
81
- \end{array}\right)
82
- \end{aligned}
83
- $$ -->
84
-
85
83
 
86
84
  ## Build an Audience
87
85
  The PRO version has built-in support for customizable [Tinyletter] newsletter subscription boxes.
88
86
 
89
87
  If you are using a different service like MailChimp, you can build a custom newsletter subscription box using [Custom Forms][forms].
90
88
 
91
- {% include pro/newsletter.html %}
92
-
93
89
 
94
90
  ## A Personal Site That Belongs to You
95
91
  **Hydejack** is 100% built on Open Source software, and is Open Source itself, save for parts of the PRO version. The PRO version is a one-time payment that gives you the right to use it forever.
@@ -103,7 +99,7 @@ An incomplete list of features included in all versions of **Hydejack**:
103
99
  * Lazy image loading with cancellation and placeholder, powered by [hy-img]
104
100
  * Advanced FLIP animations, inspired by Material Design
105
101
  * 99/100 [Google PageSpeed Score][gpss][^2]
106
- * [Syntax highlighting](#syntax-highlighting), powered by [Rouge]
102
+ * [Syntax highlighting][syntax], powered by [Rouge]
107
103
  * [LaTeX math blocks][latex], powered by [KaTeX]
108
104
  * Change the wording of built-in strings and possibly translate in other languages
109
105
  * Support for categories and tags
@@ -112,7 +108,6 @@ An incomplete list of features included in all versions of **Hydejack**:
112
108
  * Structured Data for core entities
113
109
  * Author section below each article and support for multiple authors
114
110
  * Google Analytics and Google Fonts support
115
- * Disqus comments
116
111
 
117
112
 
118
113
  ## Download
@@ -139,7 +134,9 @@ This table below shows what's included in each version:
139
134
  | Source | [GitHub][src] | Included |
140
135
  | Support[^1] | No | No |
141
136
  | Price | Free | $59 |
142
- | | [**Download**][kit] | [**Buy PRO**][buy] |
137
+ | | [**Download**][kit] <br/>-- or --<br/> [![Deploy to Netlify][dtn]][nfy] | [**Buy PRO**][buy] |
138
+
139
+
143
140
 
144
141
 
145
142
  [^1]: You MAY open an issue on GitHub, but no response and/or fix is guaranteed.
@@ -163,10 +160,12 @@ This table below shows what's included in each version:
163
160
  [pro]: licenses/PRO.md
164
161
  [docs]: docs/README.md
165
162
 
166
- [kit]: https://github.com/qwtel/hy-starter-kit/archive/v8.1.1.zip
163
+ [kit]: https://github.com/qwtel/hydejack-starter-kit/archive/v8.4.0.zip
167
164
  [src]: https://github.com/qwtel/hydejack
168
165
  [gem]: https://rubygems.org/gems/jekyll-theme-hydejack
169
166
  [buy]: https://app.simplegoods.co/i/NATYVLYT
167
+ [nfy]: https://app.netlify.com/start/deploy?repository=https://github.com/qwtel/hydejack-starter-kit
168
+ [dtn]: https://www.netlify.com/img/deploy/button.svg
170
169
 
171
170
  [gpss]: https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fhydejack.com%2F
172
171
  [hy-push-state]: https://qwtel.com/hy-push-state/
@@ -13,7 +13,7 @@
13
13
  {% endfor %}
14
14
  </small></nav>
15
15
  {% endif %}
16
- <p><small>Powered by <a class="external" href="https://hydejack.com/">Hydejack</a> v<span id="_version">8.3.2</span></small></p>
16
+ <p><small>Powered by <a class="external" href="https://hydejack.com/">Hydejack</a> v<span id="_version">8.4.0</span></small></p>
17
17
  <hr class="sr-only"/>
18
18
  </footer>
19
19
  {% endif %}
@@ -20,7 +20,7 @@
20
20
  This is to avoid hard-coding URLs in JS (where they can't be discovered by automated tools).
21
21
  -->{% endcomment %}
22
22
  <link rel="dns-prefetch" href="{{ '/' | relative_url }}" id="_baseURL">
23
- <link rel="dns-prefetch" href="{{ '/assets/js/hydejack-8.3.2.js' | relative_url }}" id="_hrefJS">
23
+ <link rel="dns-prefetch" href="{{ '/assets/js/hydejack-8.4.0.js' | relative_url }}" id="_hrefJS">
24
24
  <link rel="dns-prefetch" href="{{ '/sw.js' | relative_url }}" id="_hrefSW">
25
25
  <link rel="dns-prefetch" href="{{ '/assets/bower_components/fontfaceobserver/fontfaceobserver.standalone.js' | relative_url }}" id="_hrefFFO">
26
26
  <link rel="dns-prefetch" href="{{ '/assets/bower_components/katex/dist/katex.min.js' | relative_url }}" id="_hrefKatexJS">
@@ -2,6 +2,10 @@
2
2
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
3
3
  <meta http-equiv="x-ua-compatible" content="ie=edge">
4
4
 
5
+ {% if page.noindex %}
6
+ <meta name="robots" content="noindex">
7
+ {% endif %}
8
+
5
9
  {% unless page.redirect %}
6
10
  {% if plugins contains 'jekyll-seo-tag' %}{% include head/seo-tag.html %}
7
11
  {% else %}{% include head/seo-fallback.html %}{% endif %}
@@ -27,4 +31,4 @@
27
31
  <meta name="theme-color" content="{{ theme_color | default:'#193747' }}">
28
32
  {% endunless %}
29
33
 
30
- <meta name="generator" content="Hydejack v8.3.2" />
34
+ <meta name="generator" content="Hydejack v8.4.0" />
@@ -1,5 +1,5 @@
1
1
  <!--[if gt IE 8]><!---->
2
- {% capture style_url %}{% link assets/css/hydejack-8.3.2.css %}{% endcapture %}
2
+ {% capture style_url %}{% link assets/css/hydejack-8.4.0.css %}{% endcapture %}
3
3
  {% capture icons_url %}{% link assets/icomoon/style.css %}{% endcapture %}
4
4
  {% capture fonts_url %}https://fonts.googleapis.com/css?family={{ google_fonts }}{% endcapture %}
5
5
 
data/_includes/header.txt CHANGED
@@ -9,5 +9,5 @@
9
9
  * /\___/ \ \____/
10
10
  * \/__/ \/___/
11
11
  *
12
- * Powered by Hydejack v8.3.2 <https://hydejack.com/>
12
+ * Powered by Hydejack v8.4.0 <https://hydejack.com/>
13
13
  */
@@ -0,0 +1,33 @@
1
+ {% unless page.redirect %}
2
+ {% if site.google_analytics %}
3
+ <script>
4
+ window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
5
+ {% if site.hydejack.cookies_banner %}
6
+ if (navigator.CookiesOK) {
7
+ ga('create', '{{ site.google_analytics }}', 'auto');
8
+ } else if (localStorage && localStorage.getItem('hy:cookiesOK')) {
9
+ ga('create', '{{ site.google_analytics }}', {
10
+ 'storage': 'none',
11
+ 'clientId': localStorage.getItem('ga:clientId')
12
+ });
13
+ } else {
14
+ ga('create', '{{ site.google_analytics }}', {
15
+ 'storage': 'none'
16
+ });
17
+ ga('set', 'forceSSL', true);
18
+ ga('set', 'anonymizeIp', true);
19
+ }
20
+ {% else %}
21
+ ga('create', '{{ site.google_analytics }}', 'auto');
22
+ {% endif %}
23
+ ga('send', 'pageview');
24
+ loadJSDeferred('https://www.google-analytics.com/analytics.js');
25
+ </script>
26
+ {% endif %}
27
+
28
+ <!--[if gt IE 9]><!---->
29
+ {% capture js_url %}{% link assets/js/hydejack-7.5.2.js %}{% endcapture %}
30
+ <script>loadJSDeferred('{{ js_url | relative_url }}');</script>
31
+ {% include my-scripts.html %}
32
+ <!--<![endif]-->
33
+ {% endunless %}
@@ -10,6 +10,6 @@
10
10
  /\___/ \ \____/
11
11
  \/__/ \/___/
12
12
 
13
- Powered by Hydejack v8.3.2 <https://hydejack.com/>
13
+ Powered by Hydejack v8.4.0 <https://hydejack.com/>
14
14
  -->{% capture _LINE_FEED %}
15
15
  {% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd p rt rp optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}</html>
@@ -14,7 +14,7 @@
14
14
  "license": "MIT",
15
15
  "repository": {
16
16
  "type": "git",
17
- "url": "git://github.com/Khan/KaTeX.git"
17
+ "url": "git://github.com/KaTeX/KaTeX.git"
18
18
  },
19
19
  "ignore": [
20
20
  "**/.*",
@@ -33,15 +33,15 @@
33
33
  "/static",
34
34
  "/website"
35
35
  ],
36
- "version": "0.10.0",
37
- "_release": "0.10.0",
36
+ "version": "0.10.1",
37
+ "_release": "0.10.1",
38
38
  "_resolution": {
39
39
  "type": "version",
40
- "tag": "v0.10.0",
41
- "commit": "e1361b5ea5e750aa09833eed7f0a92f042387675"
40
+ "tag": "v0.10.1",
41
+ "commit": "e77bf08983d4d5f8df6490e703173fa9ea9aac8b"
42
42
  },
43
43
  "_source": "https://github.com/Khan/KaTeX.git",
44
- "_target": "0.10.0",
44
+ "_target": "0.10.1",
45
45
  "_originalSource": "katex",
46
46
  "_direct": true
47
47
  }
@@ -14,7 +14,7 @@
14
14
  "license": "MIT",
15
15
  "repository": {
16
16
  "type": "git",
17
- "url": "git://github.com/Khan/KaTeX.git"
17
+ "url": "git://github.com/KaTeX/KaTeX.git"
18
18
  },
19
19
  "ignore": [
20
20
  "**/.*",
@@ -242,6 +242,10 @@ var auto_render_renderMathInText = function renderMathInText(text, optionsCopy)
242
242
  optionsCopy.displayMode = data[i].display;
243
243
 
244
244
  try {
245
+ if (optionsCopy.preProcess) {
246
+ math = optionsCopy.preProcess(math);
247
+ }
248
+
245
249
  external_katex_default.a.render(math, span, optionsCopy);
246
250
  } catch (e) {
247
251
  if (!(e instanceof external_katex_default.a.ParseError)) {
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)}("undefined"!=typeof self?self:this,function(r){return function(r){var n={};function o(e){if(n[e])return n[e].exports;var t=n[e]={i:e,l:!1,exports:{}};return r[e].call(t.exports,t,t.exports,o),t.l=!0,t.exports}return o.m=r,o.c=n,o.d=function(e,t,r){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)o.d(r,n,function(e){return t[e]}.bind(null,n));return r},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=1)}([function(e,t){e.exports=r},function(e,t,r){"use strict";r.r(t);var n=r(0),l=r.n(n),s=function(e,t,r){for(var n=r,o=0,a=e.length;n<t.length;){var i=t[n];if(o<=0&&t.slice(n,n+a)===e)return n;"\\"===i?n++:"{"===i?o++:"}"===i&&o--,n++}return-1},d=function(e,t,r,n){for(var o=[],a=0;a<e.length;a++)if("text"===e[a].type){var i=e[a].data,l=!0,d=0,f=void 0;for(-1!==(f=i.indexOf(t))&&(d=f,o.push({type:"text",data:i.slice(0,d)}),l=!1);;){if(l){if(-1===(f=i.indexOf(t,d)))break;o.push({type:"text",data:i.slice(d,f)}),d=f}else{if(-1===(f=s(r,i,d+t.length)))break;o.push({type:"math",data:i.slice(d+t.length,f),rawData:i.slice(d,f+r.length),display:n}),d=f+r.length}l=!l}o.push({type:"text",data:i.slice(d)})}else o.push(e[a]);return o},i=function(e,t){for(var r=function(e,t){for(var r=[{type:"text",data:e}],n=0;n<t.length;n++){var o=t[n];r=d(r,o.left,o.right,o.display||!1)}return r}(e,t.delimiters),n=document.createDocumentFragment(),o=0;o<r.length;o++)if("text"===r[o].type)n.appendChild(document.createTextNode(r[o].data));else{var a=document.createElement("span"),i=r[o].data;t.displayMode=r[o].display;try{l.a.render(i,a,t)}catch(e){if(!(e instanceof l.a.ParseError))throw e;t.errorCallback("KaTeX auto-render: Failed to parse `"+r[o].data+"` with ",e),n.appendChild(document.createTextNode(r[o].rawData));continue}n.appendChild(a)}return n};t.default=function(e,t){if(!e)throw new Error("No element provided to render");var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]=t[n]);r.delimiters=r.delimiters||[{left:"$$",right:"$$",display:!0},{left:"\\(",right:"\\)",display:!1},{left:"\\[",right:"\\]",display:!0}],r.ignoredTags=r.ignoredTags||["script","noscript","style","textarea","pre","code"],r.ignoredClasses=r.ignoredClasses||[],r.errorCallback=r.errorCallback||console.error,r.macros=r.macros||{},function e(t,r){for(var n=0;n<t.childNodes.length;n++){var o=t.childNodes[n];if(3===o.nodeType){var a=i(o.textContent,r);n+=a.childNodes.length-1,t.replaceChild(a,o)}else 1===o.nodeType&&function(){var t=" "+o.className+" ";-1===r.ignoredTags.indexOf(o.nodeName.toLowerCase())&&r.ignoredClasses.every(function(e){return-1===t.indexOf(" "+e+" ")})&&e(o,r)}()}}(e,r)}}]).default});
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)}("undefined"!=typeof self?self:this,function(e){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=1)}([function(t,r){t.exports=e},function(e,t,r){"use strict";r.r(t);var n=r(0),o=r.n(n),a=function(e,t,r){for(var n=r,o=0,a=e.length;n<t.length;){var i=t[n];if(o<=0&&t.slice(n,n+a)===e)return n;"\\"===i?n++:"{"===i?o++:"}"===i&&o--,n++}return-1},i=function(e,t,r,n){for(var o=[],i=0;i<e.length;i++)if("text"===e[i].type){var l=e[i].data,d=!0,s=0,f=void 0;for(-1!==(f=l.indexOf(t))&&(s=f,o.push({type:"text",data:l.slice(0,s)}),d=!1);;){if(d){if(-1===(f=l.indexOf(t,s)))break;o.push({type:"text",data:l.slice(s,f)}),s=f}else{if(-1===(f=a(r,l,s+t.length)))break;o.push({type:"math",data:l.slice(s+t.length,f),rawData:l.slice(s,f+r.length),display:n}),s=f+r.length}d=!d}o.push({type:"text",data:l.slice(s)})}else o.push(e[i]);return o},l=function(e,t){for(var r=function(e,t){for(var r=[{type:"text",data:e}],n=0;n<t.length;n++){var o=t[n];r=i(r,o.left,o.right,o.display||!1)}return r}(e,t.delimiters),n=document.createDocumentFragment(),a=0;a<r.length;a++)if("text"===r[a].type)n.appendChild(document.createTextNode(r[a].data));else{var l=document.createElement("span"),d=r[a].data;t.displayMode=r[a].display;try{t.preProcess&&(d=t.preProcess(d)),o.a.render(d,l,t)}catch(e){if(!(e instanceof o.a.ParseError))throw e;t.errorCallback("KaTeX auto-render: Failed to parse `"+r[a].data+"` with ",e),n.appendChild(document.createTextNode(r[a].rawData));continue}n.appendChild(l)}return n};t.default=function(e,t){if(!e)throw new Error("No element provided to render");var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]=t[n]);r.delimiters=r.delimiters||[{left:"$$",right:"$$",display:!0},{left:"\\(",right:"\\)",display:!1},{left:"\\[",right:"\\]",display:!0}],r.ignoredTags=r.ignoredTags||["script","noscript","style","textarea","pre","code"],r.ignoredClasses=r.ignoredClasses||[],r.errorCallback=r.errorCallback||console.error,r.macros=r.macros||{},function e(t,r){for(var n=0;n<t.childNodes.length;n++){var o=t.childNodes[n];if(3===o.nodeType){var a=l(o.textContent,r);n+=a.childNodes.length-1,t.replaceChild(a,o)}else 1===o.nodeType&&function(){var t=" "+o.className+" ";-1===r.ignoredTags.indexOf(o.nodeName.toLowerCase())&&r.ignoredClasses.every(function(e){return-1===t.indexOf(" "+e+" ")})&&e(o,r)}()}}(e,r)}}]).default});
@@ -0,0 +1,215 @@
1
+ import katex from '../katex.mjs';
2
+
3
+ /* eslint no-constant-condition:0 */
4
+ const findEndOfMath = function findEndOfMath(delimiter, text, startIndex) {
5
+ // Adapted from
6
+ // https://github.com/Khan/perseus/blob/master/src/perseus-markdown.jsx
7
+ let index = startIndex;
8
+ let braceLevel = 0;
9
+ const delimLength = delimiter.length;
10
+
11
+ while (index < text.length) {
12
+ const character = text[index];
13
+
14
+ if (braceLevel <= 0 && text.slice(index, index + delimLength) === delimiter) {
15
+ return index;
16
+ } else if (character === "\\") {
17
+ index++;
18
+ } else if (character === "{") {
19
+ braceLevel++;
20
+ } else if (character === "}") {
21
+ braceLevel--;
22
+ }
23
+
24
+ index++;
25
+ }
26
+
27
+ return -1;
28
+ };
29
+
30
+ const splitAtDelimiters = function splitAtDelimiters(startData, leftDelim, rightDelim, display) {
31
+ const finalData = [];
32
+
33
+ for (let i = 0; i < startData.length; i++) {
34
+ if (startData[i].type === "text") {
35
+ const text = startData[i].data;
36
+ let lookingForLeft = true;
37
+ let currIndex = 0;
38
+ let nextIndex;
39
+ nextIndex = text.indexOf(leftDelim);
40
+
41
+ if (nextIndex !== -1) {
42
+ currIndex = nextIndex;
43
+ finalData.push({
44
+ type: "text",
45
+ data: text.slice(0, currIndex)
46
+ });
47
+ lookingForLeft = false;
48
+ }
49
+
50
+ while (true) {
51
+ if (lookingForLeft) {
52
+ nextIndex = text.indexOf(leftDelim, currIndex);
53
+
54
+ if (nextIndex === -1) {
55
+ break;
56
+ }
57
+
58
+ finalData.push({
59
+ type: "text",
60
+ data: text.slice(currIndex, nextIndex)
61
+ });
62
+ currIndex = nextIndex;
63
+ } else {
64
+ nextIndex = findEndOfMath(rightDelim, text, currIndex + leftDelim.length);
65
+
66
+ if (nextIndex === -1) {
67
+ break;
68
+ }
69
+
70
+ finalData.push({
71
+ type: "math",
72
+ data: text.slice(currIndex + leftDelim.length, nextIndex),
73
+ rawData: text.slice(currIndex, nextIndex + rightDelim.length),
74
+ display: display
75
+ });
76
+ currIndex = nextIndex + rightDelim.length;
77
+ }
78
+
79
+ lookingForLeft = !lookingForLeft;
80
+ }
81
+
82
+ finalData.push({
83
+ type: "text",
84
+ data: text.slice(currIndex)
85
+ });
86
+ } else {
87
+ finalData.push(startData[i]);
88
+ }
89
+ }
90
+
91
+ return finalData;
92
+ };
93
+
94
+ /* eslint no-console:0 */
95
+
96
+ const splitWithDelimiters = function splitWithDelimiters(text, delimiters) {
97
+ let data = [{
98
+ type: "text",
99
+ data: text
100
+ }];
101
+
102
+ for (let i = 0; i < delimiters.length; i++) {
103
+ const delimiter = delimiters[i];
104
+ data = splitAtDelimiters(data, delimiter.left, delimiter.right, delimiter.display || false);
105
+ }
106
+
107
+ return data;
108
+ };
109
+ /* Note: optionsCopy is mutated by this method. If it is ever exposed in the
110
+ * API, we should copy it before mutating.
111
+ */
112
+
113
+
114
+ const renderMathInText = function renderMathInText(text, optionsCopy) {
115
+ const data = splitWithDelimiters(text, optionsCopy.delimiters);
116
+ const fragment = document.createDocumentFragment();
117
+
118
+ for (let i = 0; i < data.length; i++) {
119
+ if (data[i].type === "text") {
120
+ fragment.appendChild(document.createTextNode(data[i].data));
121
+ } else {
122
+ const span = document.createElement("span");
123
+ let math = data[i].data; // Override any display mode defined in the settings with that
124
+ // defined by the text itself
125
+
126
+ optionsCopy.displayMode = data[i].display;
127
+
128
+ try {
129
+ if (optionsCopy.preProcess) {
130
+ math = optionsCopy.preProcess(math);
131
+ }
132
+
133
+ katex.render(math, span, optionsCopy);
134
+ } catch (e) {
135
+ if (!(e instanceof katex.ParseError)) {
136
+ throw e;
137
+ }
138
+
139
+ optionsCopy.errorCallback("KaTeX auto-render: Failed to parse `" + data[i].data + "` with ", e);
140
+ fragment.appendChild(document.createTextNode(data[i].rawData));
141
+ continue;
142
+ }
143
+
144
+ fragment.appendChild(span);
145
+ }
146
+ }
147
+
148
+ return fragment;
149
+ };
150
+
151
+ const renderElem = function renderElem(elem, optionsCopy) {
152
+ for (let i = 0; i < elem.childNodes.length; i++) {
153
+ const childNode = elem.childNodes[i];
154
+
155
+ if (childNode.nodeType === 3) {
156
+ // Text node
157
+ const frag = renderMathInText(childNode.textContent, optionsCopy);
158
+ i += frag.childNodes.length - 1;
159
+ elem.replaceChild(frag, childNode);
160
+ } else if (childNode.nodeType === 1) {
161
+ // Element node
162
+ const className = ' ' + childNode.className + ' ';
163
+ const shouldRender = optionsCopy.ignoredTags.indexOf(childNode.nodeName.toLowerCase()) === -1 && optionsCopy.ignoredClasses.every(x => className.indexOf(' ' + x + ' ') === -1);
164
+
165
+ if (shouldRender) {
166
+ renderElem(childNode, optionsCopy);
167
+ }
168
+ } // Otherwise, it's something else, and ignore it.
169
+
170
+ }
171
+ };
172
+
173
+ const renderMathInElement = function renderMathInElement(elem, options) {
174
+ if (!elem) {
175
+ throw new Error("No element provided to render");
176
+ }
177
+
178
+ const optionsCopy = {}; // Object.assign(optionsCopy, option)
179
+
180
+ for (const option in options) {
181
+ if (options.hasOwnProperty(option)) {
182
+ optionsCopy[option] = options[option];
183
+ }
184
+ } // default options
185
+
186
+
187
+ optionsCopy.delimiters = optionsCopy.delimiters || [{
188
+ left: "$$",
189
+ right: "$$",
190
+ display: true
191
+ }, {
192
+ left: "\\(",
193
+ right: "\\)",
194
+ display: false
195
+ }, // LaTeX uses $…$, but it ruins the display of normal `$` in text:
196
+ // {left: "$", right: "$", display: false},
197
+ // \[…\] must come last in this array. Otherwise, renderMathInElement
198
+ // will search for \[ before it searches for $$ or \(
199
+ // That makes it susceptible to finding a \\[0.3em] row delimiter and
200
+ // treating it as if it were the start of a KaTeX math zone.
201
+ {
202
+ left: "\\[",
203
+ right: "\\]",
204
+ display: true
205
+ }];
206
+ optionsCopy.ignoredTags = optionsCopy.ignoredTags || ["script", "noscript", "style", "textarea", "pre", "code"];
207
+ optionsCopy.ignoredClasses = optionsCopy.ignoredClasses || [];
208
+ optionsCopy.errorCallback = optionsCopy.errorCallback || console.error; // Enable sharing of global macros defined via `\gdef` between different
209
+ // math elements within a single call to `renderMathInElement`.
210
+
211
+ optionsCopy.macros = optionsCopy.macros || {};
212
+ renderElem(elem, optionsCopy);
213
+ };
214
+
215
+ export default renderMathInElement;