由于 Hexo文档已经非常非常久不再更新了,并且我已经忘记怎么维护了,故迁移到 Jekyll

Jekyll 基本配置

参考 Quickstart 安装 Jekyll 也并不是一帆风顺。

Ruby 需要一个 msys2 环境,由 ridk 管理,安装时需要获取一系列证书,不出所料地全都 Timeout,不过看起来不需要也能跑起来。 跑起来之后,发现需要一个镜像,一番搜索发现 https://gems.ruby-china.com/ 可以提供,非常方便。

成功运行后,根据我的需求需要在_config.yaml中配置一些选项:

kramdown:
  input: GFM
  syntax_highlighter: rouge
  math_engine: katex

Kramdown 对 Markdown 的支持颇为迷惑,尽管指定了 GitHub Favored Markdown,链接和数学符号中的|都会认为是在划分表格,必须转义。链接中用\|没问题,但在数学符号中\会被保留(写不出一个单独的|),只能用$$\vert$$代替)。Syntax highlighter 选用 rouge,因为 Coderay 居然只支持十几种语言。

数学渲染

数学渲染引擎这次选用有趣的纯服务端 KaTeX 而不是纯客户端的 MathJax,不知道会不会性能好一点。但 KaTeX 也不是完全不依赖客户端,还需要添加一个 CSS 样式表。为了不把 minima 整个抄过来,我只得继承他的 post 样式,建一个新的 post-math 样式。

_layouts/post-math.html

---
layout: post
---

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.4/dist/katex.min.css" integrity="sha384-vKruj+a13U8yHIkAyGgK1J3ArTLzrFGBbBc0tDp4ad/EyewESeXE/Iv67Aj8gKZ0" crossorigin="anonymous">

{{ content }}

CSS 可以塞到 body 中,因此这是合理的。

静态 Reveal.js

原来的博客中还上传了一些 Reveal.js 的幻灯片,本来是把仓库整个打包了进来,研究一下发现只需要把他的 dist 和 plugin 两个文件夹以及 .html 打包了就好。由于是静态渲染,.md 自然不能使用,全文复制到 .html 中。

吐槽

Jekyll 里面并没有很好的自定义主题的方法,主要的方法是把主题的所有的文件都复制到自己的仓库里,感觉有点离谱。后续要自定义的话应该要手动 fork 一个仓库才好。