为什么要建一个自己的博客

最主要的原因是受不了各大网站的的内容审查,尤其是 douban。其次是需要一个更好的排版系统,比如支持 Tex 公式(指支持Markdown)。虽然 Markdown 也存在很多问题,比如规范不统一,公式渲染也存在问题,但毕竟平时习惯使用,目前也没找到更好的替代品。除此之外对其他的功能要求勂。

方案: Github pages + hexo

首先排除了墙内的服务器。我选择的方案是 Github pages + hexo,这个选择很常见,也很简单,照着相关教程一步一步来半小时就能完成。虽然 Github 访问受限,但是 Github pages 托管的博客访问却没有。其实开始尝试 netlify 托管,但是 hexo 编译总存在问题,且访问速度很慢,遂放弃。更多关于博客建站的方案选择可以参考友邻椒盐豆豉:https://blog.douchi.space/choose-blog-tool/#gsc.tab=0

在初始的主题下就能正常写文章了,当然,在这之后就应该开始折腾主题了。我预想中的效果是一个白底黑字 LaTeXlike\LaTeX - like 风格的博客,在 hexo 主题页面输入 LaTeX\LaTeX 倒是有几个相关的主题,不过都不太满意。找了一个叫 paperwhite 的主题,基本符合我的要求,于是就选择了它。对于其他想建站的友邻,如果想选择 hexo,还是推荐 hexo 中比较流行的主题比如 NexT 和 yilia,实现的功能更加丰富,修改起来也更加方便,遇到问题也更容易解决。

插曲

paperwhite 主题用 Giscus(一个需要关联 Github 仓库的评论系统)实现。当时没有成功关联到自己的仓库,而是仍然连接到主题作者 Aeilot Louis 的仓库中,所以测试评论的通知都会转发给 Aeilot 本人。经过交流发现 Louis 是一个码龄八年的中国高一学生。

目前实现的功能和存在的问题

  • 公式渲染:用的是 hexo-renderer-markdown-it-plus,基本可以实现 Tex 公式的渲染。但是由于 Markdown 语法的混合对公式支持也造成了非常大的影响,比如 Tex 中双斜杠代表换行,到 Markdown 中就只是单斜杠;符号间空格空格也会导致 hexo 无法正确渲染公式,而本地编辑器( vscode)可以正常显示。最大的问题还是公式渲染的字体太难看。

  • 文章分类: Categories 一栏可以按照分类查看文章。但是不支持多级分类和多标签分类。

  • 评论区: Giscus 实现已关联到我自己的仓库。不支持匿名评论,需要 Github 登录。后续考虑其他方案。

  • RSS 订阅功能 : hexo-generator-feed 插件实现。

  • 移动端图片缩放目前不适配。

以上功能基本都是东拼西凑实现的,基本实现了我的需求。目前还缺少搜索文章的功能。当然我对于 Html/css/JS 几乎一无所知,想去解决这些问题还是有些困难。考虑到 Tex 公式的渲染实在是太丑了,有时间会考虑换一个更加成熟的主题。

PS:豆瓣文章是由 Markdown 生成后直接复制的。