Skip to content

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核心特性

  1. GitHub Pages 原生支持:把代码push到GitHub仓库,GitHub服务器自动运行Jekyll构建,不需要本地构建,零部署成本,这是它最大王牌优势。
  2. Liquid模板引擎:标签、过滤器、模板继承,{% include %}{% for %},和Eleventy的Liquid语法几乎一样。
  3. 博客原生支持:posts、分类、标签、归档、永久链接permalink,开箱即用。
  4. 主题系统:大量现成主题,只需要改_config.yml即可切换主题。
  5. 插件生态:Ruby gem插件,可扩展功能(摘要、搜索、图片处理)。
  6. 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优点

  1. GitHub Pages 一键部署,无需CI,push代码自动发布,个人博客首选。
  2. 社区历史悠久,主题、教程非常多。
  3. 博客功能原生完备,写Markdown博客体验成熟。
  4. Liquid模板简单,写内容不用学习复杂JS。
  5. 输出纯净静态文件,无运行时JS。

👎Jekyll缺点

  1. 依赖Ruby环境,Windows安装Ruby经常踩坑,环境配置麻烦。
  2. 构建速度慢,文章数量多的时候构建时间明显变长,远不如Eleventy、Hugo。
  3. 目录约定比较死板,不像Eleventy可以自由自定义文件夹结构。
  4. 插件是Ruby gem,前端开发者不熟悉Ruby生态。
  5. 不支持现代前端组件(Vue/React),没有岛屿架构。

Jekyll和Eleventy对比(重点)

项目JekyllEleventy(11ty)
运行环境RubyNode.js
模板引擎Liquid(唯一)Liquid/Nunjucks/Markdown/HTML多引擎混用
目录强约定,_posts固定完全自由,可自定义任意目录
GitHub Pages原生内置,服务器自动构建需要本地构建或者CI
构建速度慢(文章多会明显卡顿)快,几千篇文章秒级构建
插件Ruby gemnpm包
适合喜欢GitHub Pages原生部署,不想写JS前端开发者,想要高度自定义目录结构

小提示:Jekyll的Liquid模板,Eleventy可以直接复用,两者语法高度兼容。

Jekyll和其它SSG总览

工具语言模板最大亮点
JekyllRubyLiquidGitHub Pages原生,博客老牌
EleventyNode.js多模板自由度高、构建快,Jekyll的JS替代
HugoGoGo Template构建速度天花板,主题多
VitePressNode.jsMarkdown+VueVue组件,文档站专用
AstroNode.jsMarkdown+岛屿组件静态+部分交互

Jekyll适合场景

  • 个人技术博客,希望直接使用GitHub Pages免费托管
  • 简单静态站点,不想折腾CI构建
  • 习惯Liquid模板,不想学习新模板语法

Jekyll不适合

  • 大量文章的大型站点(构建慢)
  • 需要Vue/React组件交互
  • Windows开发环境(Ruby容易出问题)
  • 需要高度自定义目录结构

选型小建议

  • 如果你只是写博客,想直接推GitHub就自动上线 → Jekyll
  • 如果你是前端开发者,用Node,想要更快构建、自由的目录 → Eleventy
  • 追求极致构建速度,大量文章 → Hugo