Hugo Katex Support
文章目录
最近需要写一篇关于tcp拥塞控制的博客,里面需要用到好些公式。结果遇到了hugo默认的markdown
解析器blackberry关于解析latex格式相关的问题。最终通过搜索采用__katex+改用mmark解析器__
的方式解决了.
mmark解析器
由于普通markdown语法和latex语法中包含类似转义符\以及_强调-下标符号,还有&符号的转换,
导致在普通的markdown语法中写latex公式并转换到html中间有很多麻烦。
mmark是一个markdown语法的超集,其中就包含特定的对于latex公式方面的兼容,并且兼顾了markdown 的特点。
- 所有包含在
$$和$$之间的内容不做任何转义处理,包括&和\、_. $$ $$根据环境,如果在段落当中,则转换为\(\)根据katex或者mathjax的默认规定,表示行内 公式。如果独立成段落(前后都有空行),则转换为\[\]。- 将上述内容包裹在
<span class="math"></span>当中,方便公式渲染器渲染。
Katex支持
通过在模版的head.html或者其他需要显示公式的页面均能够载入的模版文件当中,添加katex的三个文件
katex.min.js、katex.min.css、auto-render.min.js。具体的链接到github/katex说明页面
中找。
其中的auto-render.min.js提供了对于页面内容的渲染支持函数。只需要载入后使用
renderMathInElement(document.body)
就可以自动将页面中class="math"的内容渲染成公式。使用如下方式让页面加载完成后自动执行该函数
document.addEventListener("DOMContentLoaded", function() {
renderMathInElement(document.body,
[
{left: "$$", right: "$$", display: true},
{left: "\\[", right: "\\]", display: true},
{left: "\\(", right: "\\)", display: false},
]);
});
文章作者 thinkeryu
上次更新 2017-12-11