我是 Hugo 或任何网络开发的新手。我想建立一个个人网站来分享我的数学笔记,这些笔记是用 markdown 写的。准确地说,我使用模板 hugo-book .但是我发现它不支持 markdown 中的数学模式,即如果我在 $$
之间写方程式,它就不起作用。 .我确实找到了一些写数学方程式的方法,例如,我可以使用 {{< katex >}}
,但是我的markdown笔记每次都改这个不方便。那么,有没有一种方法可以让我使用 $$
在此模板中编写数学方程式?
谢谢!
最佳答案
对于 Mathjax 3,将它放在页面源代码的某处。我把它放在layouts/partials/head-additions.html
,但也许这是特定于 ananke 主题的:
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
现在您可以将它放在您的页面上并呈现它:
Raw Mathjax block:
$$a_4 \ne b_4$$
如您所料。
请记住,根据 commonmarkspec (雨果跟随因为它使用 goldmark内部),你需要在标点符号前加两个反斜杠,如(
和 [
.所以:
This shows as Mathjax \\(a \ne b\\), but this doesn't \(a \ne b\)
Likewise, this shows as Mathjax
\\[a \ne b\\]
but this doesn't:
\[a \ne b\]
当然,您可以使用 $$ TeX Source $$
来避免这种情况.
你可以在这里停下来。
但我更进一步,因为我不喜欢 Mathjax 如何为您提供一闪而过的无样式内容 (FOUC),如 issue 131 中所述。 .我修改了那个问题中建议的方法。把它放在页面源代码中,而不是两个简单的 <script>
上面的标签:
{{- if or (.HasShortcode "mathjax/block") (.HasShortcode "mathjax/inline") -}}
<style>
.has-mathjax {
visibility: hidden;
}
</style>
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
<script>
window.MathJax = {
startup: {
pageReady: () => {
return MathJax.startup.defaultPageReady().then(() => {
for (let element of document.getElementsByClassName("has-mathjax")) {
element.style.visibility = "visible"
}
});
}
}
};
</script>
{{- end -}}
将其放入 layouts/shortcodes/mathjax/block.html
:
<div class="has-mathjax">
{{ .Inner }}
</div>
这在 layouts/shortcodes/mathjax/inline.html
中:
<span class="has-mathjax">{{ .Inner }}</span>
现在您可以将其放入您的页面源代码中:
Mathjax block:
{{< mathjax/block >}}
\[a \ne 0\]
{{< /mathjax/block >}}
Inline shortcode {{< mathjax/inline >}}\(a \ne 0\){{< /mathjax/inline >}} with
Mathjax.
如您所见,使用短代码还可以解决需要在标点符号前添加两个反斜杠的问题,例如 (
和 [
.
(完全披露:这种方法也出现在 an article on my blog 上)
关于markdown - 如何使用 markdown 语法在 Hugo 中编写数学?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64050359/
我想在我的博客主页上添加一张 map 。它需要接受一些参数。我正在努力弄清楚如何正确配置它。我通过对设置进行硬编码来让它工作,但这并不适合与其他人分享我的解决方案。 我的问题是我将它实现为部分:{{
我正在为一位设计师在 Hugo 中构建一个网站。它包括一个投资组合,每篇文章中都有图片。 我认为最简单的管理方法是使用页面包。也就是说,在每个帖子的文件夹中包含图像,并让 Hugo 自动将该页面包中的
如何注释掉 Hugo 中的内容? 如果我有笔记,未完成的想法,我想把它们留在.md文件但没有它们出现在 html 中.