Skip to content

Commit 253b938

Browse files
committed
feat: add katex math typesetting
1 parent ee9b898 commit 253b938

File tree

72 files changed

+159
-4
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+159
-4
lines changed

.eslintignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
assets/js/index.js
2+
assets/js/katex.js
23
assets/js/vendor
34
node_modules

assets/js/katex.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
document.addEventListener('DOMContentLoaded', function() {
2+
renderMathInElement(document.body, {
3+
delimiters: [
4+
{left: '$$', right: '$$', display: true},
5+
{left: '$', right: '$', display: false},
6+
{left: '\\(', right: '\\)', display: false},
7+
{left: '\\[', right: '\\]', display: true},
8+
],
9+
});
10+
});

assets/scss/app.scss

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
/** Import highlight.js */
1111
// @import "highlight.js/scss/dracula";
1212

13+
/** Import KaTeX */
14+
@import "katex/dist/katex";
15+
1316
/** Import theme styles */
1417
@import "common/fonts";
1518
@import "common/global";

assets/scss/common/_global.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,3 +223,7 @@ body {
223223
-webkit-text-fill-color: transparent;
224224
-moz-text-fill-color: transparent;
225225
}
226+
227+
.katex {
228+
font-size: $font-size-md;
229+
}

config/_default/config.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,6 @@ rel = "sitemap"
8585
[[module.mounts]]
8686
source = "node_modules/flexsearch"
8787
target = "assets/js/vendor/flexsearch"
88+
[[module.mounts]]
89+
source = "node_modules/katex"
90+
target = "assets/js/vendor/katex"

config/_default/params.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,4 @@ editPage = false
5555
bootStrapJs = false
5656
breadCrumb = false
5757
highLight = true
58+
kaTex = true

config/postcss.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ module.exports = {
2323
'./assets/scss/components/_code.scss',
2424
'./assets/scss/components/_search.scss',
2525
'./assets/scss/common/_dark.scss',
26+
'./node_modules/katex/dist/katex.css'
2627
]),
2728
],
2829
}),

content/docs/examples/code.md

Lines changed: 2 additions & 2 deletions

content/docs/examples/math.md

Lines changed: 44 additions & 0 deletions

layouts/partials/footer/script-footer.html

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
{{ $highlight := resources.Get "js/highlight.js" -}}
88
{{ $highlight := $highlight | js.Build -}}
99

10+
{{ $katex := resources.Get "js/vendor/katex/dist/katex.js" -}}
11+
{{ $katexAutoRender := resources.Get "js/vendor/katex/dist/contrib/auto-render.js" -}}
12+
1013
{{ $app := resources.Get "js/app.js" -}}
1114

1215
{{ $slice := slice $app -}}
@@ -40,6 +43,12 @@
4043
{{ $slice = $slice | append $darkMode -}}
4144
{{ end -}}
4245

46+
{{ if .Site.Params.options.kaTex -}}
47+
{{ $katexConfig := resources.Get "js/katex.js" -}}
48+
{{ $katexConfig := $katexConfig | js.Build -}}
49+
{{ $slice = $slice | append $katexConfig -}}
50+
{{ end -}}
51+
4352
{{ $js := $slice | resources.Concat "main.js" -}}
4453

4554
{{ if eq (hugo.Environment) "development" -}}
@@ -50,6 +59,10 @@
5059
{{ if .Site.Params.options.highLight -}}
5160
<script src="{{ $highlight.Permalink }}" defer></script>
5261
{{ end -}}
62+
{{ if .Site.Params.options.kaTex -}}
63+
<script src="{{ $katex.Permalink }}" defer></script>
64+
<script src="{{ $katexAutoRender.Permalink }}" onload="renderMathInElement(document.body);" defer></script>
65+
{{ end -}}
5366
{{ if .Site.Params.options.flexSearch -}}
5467
<script src="{{ $index.Permalink }}" defer></script>
5568
{{ end -}}
@@ -58,12 +71,18 @@
5871
{{ $index := $index | minify | fingerprint "sha512" -}}
5972
{{ $bs := $bs | minify | fingerprint "sha512" -}}
6073
{{ $highlight := $highlight | minify | fingerprint "sha512" -}}
74+
{{ $katex := $katex | minify | fingerprint "sha512" -}}
75+
{{ $katexAutoRender := $katexAutoRender | minify | fingerprint "sha512" -}}
6176
{{ if .Site.Params.options.bootStrapJs -}}
6277
<script src="{{ $bs.Permalink }}" integrity="{{ $bs.Data.Integrity }}" crossorigin="anonymous" defer></script>
6378
{{ end -}}
6479
<script src="{{ $js.Permalink }}" integrity="{{ $js.Data.Integrity }}" crossorigin="anonymous" defer></script>
6580
{{ if .Site.Params.options.highLight -}}
66-
<script src="{{ $highlight.Permalink }}" defer></script>
81+
<script src="{{ $highlight.Permalink }}" integrity="{{ $highlight.Data.Integrity }}" crossorigin="anonymous" defer></script>
82+
{{ end -}}
83+
{{ if .Site.Params.options.kaTex -}}
84+
<script src="{{ $katex.Permalink }}" integrity="{{ $katex.Data.Integrity }}" crossorigin="anonymous" defer></script>
85+
<script src="{{ $katexAutoRender.Permalink }}" integrity="{{ $katexAutoRender.Data.Integrity }}" crossorigin="anonymous" onload="renderMathInElement(document.body);" defer></script>
6786
{{ end -}}
6887
{{ if .Site.Params.options.flexSearch -}}
6988
<script src="{{ $index.Permalink }}" integrity="{{ $index.Data.Integrity }}" crossorigin="anonymous" defer></script>

0 commit comments

Comments
 (0)