博客搬家了

方案

今天把博客从 WordPress 上搬到了 GitHub Pages 上来,因为 WordPress 后台打开实在太卡了,虽然后来改成了在本地用 MarkDown 写,但每次打开控制台、新建文章、粘贴还是要等进度条。因此我打算把博客搬到 GitHub Pages 上面。
通常搭建在 GitHub Pages 上面的博客有两种方案,一种是使用 Jekyll, 另一种是使用 Hexo. 因为我已经看好了 Hexo 中一个叫做 Next 的主题,所以我选用了 Hexo.

搬家过程中的问题

关于在 ubuntu 系统下搭建基于 GitHub Pages 和 Hexo 的个人博客方法在 Google 上可以搜出一大堆,我就不复制粘贴这些教程了。主要是在配置过程中遇到许多问题,在这里列一下。

MathJax 和 Markdown 的兼容问题

在我一篇关于支持向量机的学习笔记中,使用了大量的 MathJax 编写的公式,等搬完一看傻眼了,有大约 50% 的公式都不能正常显示,Google 了一下发现是 Markdown 本身的特殊符号跟 Latex 中的符号产生了冲突。比如:

在 Markdown 中 _ 是斜体, 而在 Latex 中 _ 表示下标的开始。
在 Markdown 中 * 是斜体, 而你有可能需要在公式中使用 * 作为上下标。
在 Markdown 中 \\ 会被转义为 \,而 \\ 在 Latex 中用做行间公式标志。
Google 出的多种解决方案,包括手动转义、使用保护代码块、把 Markdown 换成 Pandoc、把 hexo-renderer-marked 换成 hexo-renderer-kramed,我都试了,发现还是修改 Hexo 渲染源码比较方便。

deploy 到 GitHub 后 css js 404

关于这个问题,官方给出的回复是:

Thanks for reaching out! We recently updated to Jekyll v3.3, which ignores the vendor folder by default. If you’re not using Jekyll, you can add a .nojekyll file to the root of your repository to disable Jekyll from building your site. Once you do that, your site should build with your vendor folder.

参考这个方法,在 .deploy_gitsource 目录中添加 .nojekyll 空文件,并修改 Hexo _config.yml 配置文件,添加:

1
2
include:
- .nojekyll

然后重新部署推送,就可以恢复了。

总结

今天的问题告诉我们:遇到开源项目出的问题,去项目页面查 Issues 比较快。