Hexo Experience
1. 简介
这是我折腾 Hexo 博客框架的经验;
希望能给后来者以启迪。
2. 我所需要的功能
虽然,现今,网上已经很多教你如何一步一步地搭建 Hexo 博客,也有很多人踩过很多坑;
不过,对于我的一些要求,仍然有很多的方面未能解决。
我主要需要的功能一共有四个:
- 数学公式渲染
- PlantUML 图
- TODO List
- Footnotes
3. 数学公式渲染
这个倒是有很多人发了很多博客,然后也解决了一些问题。
主要就是 hexo-renderer-marked
中,把 MathJax 中的 _
解析渲染成了斜体;
这样,就造成了解析错误;
同时,对于多行的数学公式,也存在很多问题。
经过一番倒腾,我的最终决定是使用 hexo-renderer-karmed
代替原先官方自带的 hexo-renderer-marked
对于另外的渲染器,它们主要的缺点有:
hexo-renderer-pandoc
过于沉重hexo-renderer-markdown-it
不支持 NexT 主题的 『Read More』
所以,最后选择使用 hexo-renderer-karmed
;
不过这个插件在某些时候也存在问题;
在这里有一个 workaround
4. PlantUML
平时我主要使用的 UML 绘图工具就是这个;
主要是因为我用 Atom 上面的 markdown-preview-enhanced
能够实时展现 PlantUML 图。
Hexo 插件列表中,也存在一个 PlantUML 的插件,hexo-tag-plantuml
;
不过这个是 tag
插件,如果使用这个的话,我就需要使用标签来定义 UML;
而不能使用 markdown 原生的 code fence;
此时,我的 markdown-preview-enhanced
也会不起作用;
所以就只能自造轮子:自己实现了一个 filter
插件,用来将 code fence 转换成 PlantUML 图。
插件源码在这里
5. TODO List
这个是比较神奇的:
之前选择的 kramed
没有这个功能,而 marked
有这个功能;
不过幸好代码量不多,可以直接将 PR 中的改动合并到 kramed
中。
6. Footnotes
这个实际上是一个 Reference 的功能;
这个是目前最容易而且也没有坑的;
直接安装 hexo-reference
插件即可。