GitHub 与 Gitee 提供的 Pages 服务中,均内嵌了 Jekyll 支持(Gitee 还提供了 Hugo 与 Hexo 支持)。所谓「支持」,即指这些生成工具挂在云端;你只需要提供原始代码(如 Markdown 文档、Sass/Stylus/Less 样式表),再由 Pages 服务自动编译、部署即可。这样,搭建网站的技术门槛进一步下降,你只需要会两件事就能搭建网站了:
- 会写 Markdown 文档;
- 注册 GitHub 或 Gitee 账号,点点鼠标,在你的代码仓库中启用 Pages 服务。
因为技术门槛如此之低,导致不少用户压根就意识不到 Pages 服务内置了 Jekyll 工具,甚至以为每一个 Markdown 文档理所当然地就能变成一个网页。此外,另一个常被忽视的问题是:由 Pages 服务调用的 Jekyll 工具,并非最新版本,而且隐性地增添了许多插件,这可能使用户在本地使用 Jekyll 或迁移平台时碰上「不协调」的问题。最常见的一个问题就是:在 GitHub Pages 上正常生成的代码仓库,到 Gitee Pages 上就变得一团糟。这不是因为 Gitee Pages 的功能「不如」GitHub Pages,而是因为:
GitHub Pages 没有告诉你它们为自己的 Jekyll 多加了几个插件,Gitee Pages 也没有告诉你它们的 Jekyll 并没有这些插件。
这里对 GitHub Pages 与 Gitee Pages 所使用的 Jekyll 进行一个简单的分析(后面姑且简称为 GitHub Jekyll 与 Gitee Jekyll),以说明它们隐性地附加了哪些功能,需要特别注意。
Jekyll on GitHub Pages
GitHub Pages 中所采用的 Jekyll 及插件、依赖,被汇总到名为 github-pages
的 Gem 中(主页)。如果你在本地安装了这个 Gem,可以运行它来查看其所要求的各项依赖版本。以目前最新的 204
版本为例,在 shell 中运行:
$ github-pages versions
+------------------------------+---------+
| Gem | Version |
+------------------------------+---------+
| jekyll | 3.8.5 |
| jekyll-sass-converter | 1.5.2 |
| kramdown | 1.17.0 |
| jekyll-commonmark-ghpages | 0.1.6 |
| liquid | 4.0.3 |
| rouge