方案选择
我首先只在Markdown+静态网站的范围内考虑,原因有以下几点:
使用现有的Blog网站服务相当于把数据都放在了别人的网站上,如果想要迁移就会非常麻烦,远不如数据在自己手上放心。
如果自己建动态网站,就要找服务器,但是常常维护着一个服务器也是很麻烦的,特别是如果想用中国大陆的服务器就需要备案。
Markdown写起来简单,备份、迁移比较容易,数据都在文件里,不用牵扯到数据库。
然后最常见的Markdown静态网站生成器有Jekyll, Hexo, Hugo.
语言 | 生成速度 | |
---|---|---|
Jekyll | Ruby | 慢 |
Hexo | Node.js | 快 |
Hugo | Go | 更快 |
我选择这几个方案并没有对速度有特别的要求,因为我Blog文章不多,更新频率也不大。主要还是看哪个框架好部署(要敲的命令短),另外对Latex的支持要好。其中我找到最简单的组合就是Hexo+Next主题。其中Next主题不只是简单的美化,而是嵌入了一些常用的扩展,例如Mathjax,搜索等,比起自己在模板页面里加script实在是方便很多。
考虑过使用Hugo代替Hexo,但是看见还需要重新配置Mathjax,就觉得麻烦,不想重新搞了。反正个人Blog这种东西,又是纯静态网站,又在Github上全开源,所以也没有什么安全问题。而且我对速度也不太敏感,凑活能用就行了。有的老师用jemdoc搭建的主页也不是好好的,jemdoc上次更新都是2012年了。
搭建过程
- 按照Hexo的教程搭建一个网站
- 按照Next的教程下载主题,并在网站config中配置使用该主题
1 | # _config.yml |
- 在网站配置中启用搜索
1 | # _config.yml |
- 在主题配置中启用搜索
1 | # source/_data/next.yml |
- 在主题配置中启用Mathjax, 并安装相应依赖,修改markdown渲染器,参见MATH
1 | # source/_data/next.yml |
如果是windows,可以这么安装依赖。
1 | # Run in powershell |