HTMLy这一框架,简单,高效,很棒,我喜欢。但这玩意也有缺点。比如,默认不支持Katex。
解决方法也很简单。HTMLy通过主题模板来渲染网站。我们可以通过魔改主题文件,手动把Katex和Highlightjs相关代码塞进去,就可以让我们的网站支持这些神奇功能了。
1. 创建主题
themes目录下存放着我们的所有可选主题。我们默认的主题是tailwind.
这个主题使用tailwindcss来渲染各种东西。本身已经很漂亮了。
为了让它支持Katex, 我们需要稍微修改下东西。
我们复制tailwind文件夹到相同路径,重命名为tailwind-katex.
这样一来,我们实际上新建了一个主题,以原版tailwind主题为基底。就是这么简单。
2. 修改 <head>, 添加引用
打开该文件夹,找到layout.html.php。打开它。我们在<head>里添加条目:我们计划用CDN来引入所需js。
原始Head:
1 2 3 4 5 6 7
| <head> <?php echo head_contents();?> <?php echo $metatags;?> <link rel="stylesheet" href="<?php echo theme_path();?>css/typography.css" data-precedence="next" /> <link rel="stylesheet" href="<?php echo theme_path();?>css/tailwind.css" data-precedence="next" /> <link rel="stylesheet" href="<?php echo theme_path();?>css/style.css" data-precedence="next" /> </head>
|
添加了引用的Head:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <head> <?php echo head_contents();?> <?php echo $metatags;?> <link rel="stylesheet" href="<?php echo theme_path();?>css/typography.css" data-precedence="next" /> <link rel="stylesheet" href="<?php echo theme_path();?>css/tailwind.css" data-precedence="next" /> <link rel="stylesheet" href="<?php echo theme_path();?>css/style.css" data-precedence="next" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css"> <script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js"></script> <script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/contrib/auto-render.min.js"></script> <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.9.0/build/styles/github-dark.min.css"> <script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.9.0/build/highlight.min.js"></script>
</head>
|
3. 修改 <script> 段,添加初始化函数
将下列代码追加到script块的最上方。这将用于初始化上述的两个库。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| document.addEventListener("DOMContentLoaded", function() { renderMathInElement(document.body, { delimiters: [ {left: "$$", right: "$$", display: true}, {left: "$", right: "$", display: false}, {left: "\\[", right: "\\]", display: true}, {left: "\\(", right: "\\)", display: false} ], throwOnError: false }); });
document.addEventListener("DOMContentLoaded", function() { hljs.highlightAll();
renderMathInElement(document.body, { delimiters: [ {left: "$$", right: "$$", display: true}, {left: "$", right: "$", display: false} ], throwOnError: false }); });
|
4. 完毕!
一切就绪。此时你的HTMLy博客应该就能正常显示Katex公式和代码高亮了!