Jekyll
Jekyll 是Ruby开发的老牌静态站点生成器SSG,GitHub Pages 的官方默认引擎,2008年由GitHub联合创始人创建,主打博客场景,使用 Liquid 模板引擎。 官网:https://jekyllrb.com/
可以理解:Eleventy 就是 Jekyll 的 Node.js 复刻替代品,Eleventy也兼容Liquid模板语法。
Jekyll工作原理
读取 Markdown、Liquid 模板、YAML配置,渲染输出到 _site 文件夹,输出纯静态HTML,可部署到任意静态托管。
- 配置文件:
_config.yml(YAML格式,所有全局配置) - Front‑matter:Markdown头部YAML元数据,设置标题、布局、分类、标签
- 约定目录结构(强制约定,不像Eleventy自由):
_posts:博客文章,文件名格式必须:2026‑08‑26‑title.md,日期会自动提取_layouts:页面布局模板_includes:可复用片段(页眉页脚)_drafts:草稿(默认不构建发布)_data:YAML/JSON全局数据文件
✨Jekyll核心特性
- GitHub Pages 原生支持:把代码push到GitHub仓库,GitHub服务器自动运行Jekyll构建,不需要本地构建,零部署成本,这是它最大王牌优势。
- Liquid模板引擎:标签、过滤器、模板继承,
{% include %}、{% for %}、,和Eleventy的Liquid语法几乎一样。 - 博客原生支持:posts、分类、标签、归档、永久链接permalink,开箱即用。
- 主题系统:大量现成主题,只需要改
_config.yml即可切换主题。 - 插件生态:Ruby gem插件,可扩展功能(摘要、搜索、图片处理)。
- Sass内置支持,原生处理scss样式。
📦Jekyll快速上手
环境要求:Ruby + RubyGems(Windows/macOS需要安装Ruby环境,这是最大门槛)
bash
# 安装
gem install jekyll bundler
# 创建新项目
jekyll new myblog
cd myblog
# 本地开发服务,访问 http://localhost:4000
bundle exec jekyll serve
# 生产构建,输出 _site
bundle exec jekyll build👍Jekyll优点
- GitHub Pages 一键部署,无需CI,push代码自动发布,个人博客首选。
- 社区历史悠久,主题、教程非常多。
- 博客功能原生完备,写Markdown博客体验成熟。
- Liquid模板简单,写内容不用学习复杂JS。
- 输出纯净静态文件,无运行时JS。
👎Jekyll缺点
- 依赖Ruby环境,Windows安装Ruby经常踩坑,环境配置麻烦。
- 构建速度慢,文章数量多的时候构建时间明显变长,远不如Eleventy、Hugo。
- 目录约定比较死板,不像Eleventy可以自由自定义文件夹结构。
- 插件是Ruby gem,前端开发者不熟悉Ruby生态。
- 不支持现代前端组件(Vue/React),没有岛屿架构。
Jekyll和Eleventy对比(重点)
| 项目 | Jekyll | Eleventy(11ty) |
|---|---|---|
| 运行环境 | Ruby | Node.js |
| 模板引擎 | Liquid(唯一) | Liquid/Nunjucks/Markdown/HTML多引擎混用 |
| 目录 | 强约定,_posts固定 | 完全自由,可自定义任意目录 |
| GitHub Pages | 原生内置,服务器自动构建 | 需要本地构建或者CI |
| 构建速度 | 慢(文章多会明显卡顿) | 快,几千篇文章秒级构建 |
| 插件 | Ruby gem | npm包 |
| 适合 | 喜欢GitHub Pages原生部署,不想写JS | 前端开发者,想要高度自定义目录结构 |
小提示:Jekyll的Liquid模板,Eleventy可以直接复用,两者语法高度兼容。
Jekyll和其它SSG总览
| 工具 | 语言 | 模板 | 最大亮点 |
|---|---|---|---|
| Jekyll | Ruby | Liquid | GitHub Pages原生,博客老牌 |
| Eleventy | Node.js | 多模板 | 自由度高、构建快,Jekyll的JS替代 |
| Hugo | Go | Go Template | 构建速度天花板,主题多 |
| VitePress | Node.js | Markdown+Vue | Vue组件,文档站专用 |
| Astro | Node.js | Markdown+岛屿组件 | 静态+部分交互 |
Jekyll适合场景
- 个人技术博客,希望直接使用GitHub Pages免费托管
- 简单静态站点,不想折腾CI构建
- 习惯Liquid模板,不想学习新模板语法
Jekyll不适合
- 大量文章的大型站点(构建慢)
- 需要Vue/React组件交互
- Windows开发环境(Ruby容易出问题)
- 需要高度自定义目录结构
选型小建议
- 如果你只是写博客,想直接推GitHub就自动上线 → Jekyll
- 如果你是前端开发者,用Node,想要更快构建、自由的目录 → Eleventy
- 追求极致构建速度,大量文章 → Hugo