From 2c11f5365392945cc49a1220d8fea074b225b6ca Mon Sep 17 00:00:00 2001 From: Andreas Deininger Date: Fri, 14 Oct 2022 17:23:14 +0200 Subject: [PATCH] Add render hook for 'chem' code blocks Auto activation of `math' and 'chem' blocks Add ability to enable KateX and/or mhchem for individual pages only Upgrade to KaTeX 0.16.3 --- .../_markup/render-codeblock-chem.html | 18 ++ .../_markup/render-codeblock-math.html | 28 +-- layouts/partials/scripts.html | 50 +++-- .../diagrams-and-formulae/index.md | 182 +++++++++++++----- 4 files changed, 192 insertions(+), 86 deletions(-) create mode 100644 layouts/_default/_markup/render-codeblock-chem.html diff --git a/layouts/_default/_markup/render-codeblock-chem.html b/layouts/_default/_markup/render-codeblock-chem.html new file mode 100644 index 0000000000..1480857725 --- /dev/null +++ b/layouts/_default/_markup/render-codeblock-chem.html @@ -0,0 +1,18 @@ +{{ .Page.Store.Set "hasmhchem" true -}} + +{{/* set default delimiters */ -}} +{{ $delimiter_left := "$$" -}} +{{ $delimiter_right := "$$" -}} + +{{/* override delimiters if set in config file */ -}} +{{ with $.Page.Site.Params.katex.options.delimiters -}} + {{ range first 1 ( where . "display" true ) -}} + {{ $delimiter_left = index . "left" -}} + {{ $delimiter_right = index . "right" -}} + {{ end -}} +{{ end -}} + +{{/* output of chemical formulae */}} +
{{ $delimiter_left -}} +{{ .Inner | safeHTML -}} +{{ $delimiter_right -}}
{{ "" -}} diff --git a/layouts/_default/_markup/render-codeblock-math.html b/layouts/_default/_markup/render-codeblock-math.html index 831b9a2f6b..8308694906 100644 --- a/layouts/_default/_markup/render-codeblock-math.html +++ b/layouts/_default/_markup/render-codeblock-math.html @@ -1,16 +1,18 @@ -{{/* set default delimiters */}} -{{ $delimiter_left := "$$" }} -{{ $delimiter_right := "$$" }} +{{ .Page.Store.Set "hasKaTeX" true -}} -{{/* override delimiters if set in config file */}} -{{ with $.Page.Site.Params.katex.options.delimiters }} - {{ range first 1 ( where . "display" true ) }} - {{ $delimiter_left = index . "left" }} - {{ $delimiter_right = index . "right" }} - {{ end }} -{{end}} +{{/* set default delimiters */ -}} +{{ $delimiter_left := "$$" -}} +{{ $delimiter_right := "$$" -}} + +{{/* override delimiters if set in config file */ -}} +{{ with $.Page.Site.Params.katex.options.delimiters -}} + {{ range first 1 ( where . "display" true ) -}} + {{ $delimiter_left = index . "left" -}} + {{ $delimiter_right = index . "right" -}} + {{ end -}} +{{ end -}} {{/* output of equation */}} -

{{ $delimiter_left }} -{{ .Inner | safeHTML }} -{{ $delimiter_right }}

+
{{ $delimiter_left -}} +{{ .Inner | safeHTML -}} +{{ $delimiter_right }}
{{ "" -}} \ No newline at end of file diff --git a/layouts/partials/scripts.html b/layouts/partials/scripts.html index f86ea4d96b..e225a0464a 100644 --- a/layouts/partials/scripts.html +++ b/layouts/partials/scripts.html @@ -1,10 +1,16 @@ +{{ $needKaTeX := or .Site.Params.katex.enable .Params.math .Params.chem -}} +{{ $needmhchem := or .Site.Params.katex.mhchem.enable .Params.chem -}} {{ $needmermaid := .Site.Params.mermaid.enable -}} {{ if ge hugo.Version "0.93.0" -}} {{ with .Site.Params.mermaid }} {{ $needmermaid = true }} {{ end }} - {{ $needmermaid = or $needmermaid (.Page.Store.Get "hasmermaid") -}} -{{ end }} + {{ $needmermaid = or $needmermaid (.Page.Store.Get "hasmermaid") -}} +{{ else -}} + {{ if or $needKaTeX $needmhchem $needmermaid -}} + {{ warnf "Outdated Hugo version %s, consider upgrading to make full use of all theme features" hugo.Version }} + {{ end -}} +{{ end -}} {{ if .Site.Params.markmap.enable -}}