Jekyll是一个简单、易于使用的静态站点生成器,它使用 Markdown 或 Textile 作为标记语言,并使用 Liquid 作为模板引擎。通过Jekyll,你可以将纯文本转换为静态网站,非常适合博客、文档站点和个人主页。本指南将深入探讨Jekyll的各个方面,从安装配置到高级技巧,助你快速上手并构建出令人惊艳的静态网站。
Jekyll 简介:静态网站的强大引擎
什么是Jekyll?

Jekyll是一款免费开源的静态站点生成器,由 Tom Preston-Werner(GitHub 的联合创始人)创建。它读取包含 YAML 头部的文本文件(可以是 Markdown、Textile 等格式),利用 Liquid 模板引擎进行渲染,最终生成静态 HTML 文件。这意味着你的网站无需服务器端语言(如 PHP、Python 或 Ruby)的支持,也能快速、安全地运行。
Jekyll 的优势
- 简单易用: 学习曲线平缓,即使没有编程经验也能快速上手。
- 安全可靠: 生成静态文件,无需担心服务器端漏洞。
- 性能卓越: 静态网站加载速度快,用户体验好。
- 版本控制友好: 非常适合使用 Git 进行版本控制和协作开发。
- GitHub Pages 集成: 可以直接部署到 GitHub Pages,免费托管你的网站。
- 主题丰富: 有大量现成的主题可供选择,或者你可以自定义主题。
- 插件扩展: 通过插件可以扩展Jekyll的功能,满足各种需求。
安装与配置 Jekyll
环境准备
要使用Jekyll,你需要先安装以下环境:
- Ruby: Jekyll 是用 Ruby 编写的,所以需要安装 Ruby 运行环境。推荐使用 Ruby 2.5.0 或更高版本。你可以使用 rbenv 或 RVM 等工具来管理 Ruby 版本。
- RubyGems: Ruby 的包管理工具,用于安装 Jekyll 及其依赖项。
- Bundler: 用于管理 Jekyll 项目的依赖项。
安装步骤
- 安装 Ruby: 访问 Ruby 官网 下载并安装适合你操作系统的 Ruby 版本。
- 安装 Bundler: 在终端中运行 `gem install bundler` 命令。
- 安装 Jekyll: 在终端中运行 `gem install jekyll bundler` 命令。
创建新的 Jekyll 项目

安装完成后,你可以使用以下命令创建一个新的 Jekyll 项目:
jekyll new my-website
这将在当前目录下创建一个名为 `my-website` 的文件夹,其中包含 Jekyll 项目的默认结构和文件。
目录结构

一个典型的 Jekyll 项目目录结构如下:
my-website/├── _config.yml # 配置文件├── _drafts # 草稿目录├── _includes # 包含文件目录├── _layouts # 布局文件目录├── _posts # 文章目录├── _sass # Sass 文件目录├── _site # 生成的静态文件目录├── .jekyll-metadata # Jekyll 元数据├── Gemfile # Bundler 配置文件└── Gemfile.lock # Bundler 锁定文件
使用 Jekyll 构建你的网站
配置文件 (_config.yml)
_config.yml 是 Jekyll 的主要配置文件,用于设置网站的各种参数,如标题、描述、主题、插件等。以下是一个示例配置文件:
title: 我的博客email: your_email@example.comdescription: >- 欢迎来到我的博客,这里分享技术、生活和思考。baseurl: "" # 如果你的网站部署在子目录中,需要设置 baseurlurl: "https://example.com" # 你的网站域名twitter_username: usernamegithub_username: usernametheme: minimaplugins: - jekyll-paginate

你可以根据自己的需求修改配置文件。
文章 (_posts)
Jekyll 使用 Markdown 或 Textile 文件作为文章的来源。文章文件必须放在 _posts 目录下,并且文件名必须遵循以下格式:
YYYY-MM-DD-文章标题.md
例如:
2023-10-27-jekyll-guide.md
文章文件的头部必须包含 YAML 头,用于设置文章的标题、日期、分类、标签等元数据。以下是一个示例文章文件:
---layout: posttitle: "Jekyll 深度指南"date: 2023-10-27 10:00:00 +0800categories: Jekylltags: [静态网站, 生成器, Markdown]---这是文章的内容。
layout 字段指定文章使用的布局文件。title 字段指定文章的标题。date 字段指定文章的发布日期。categories 字段指定文章的分类。tags 字段指定文章的标签。
布局 (_layouts)
布局文件定义了网站的整体结构和样式。你可以创建多个布局文件,并在文章文件中指定要使用的布局文件。以下是一个示例布局文件:
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>{{ page.title }} - {{ site.title }}</title> <link rel="stylesheet" href="{{ "/assets/main.css" | relative_url }}"></head><body> <header> <h1><a href="{{ "/" | relative_url }}">{{ site.title }}</a></h1> </header> <main> {{ content }} </main> <footer> <p>© {{ site.time | date: "%Y" }} {{ site.author.name }}</p> </footer></body></html>
{{ page.title }} 和 {{ site.title }} 是 Liquid 模板变量,用于插入文章标题和网站标题。{{ content }} 变量用于插入文章内容。
包含文件 (_includes)
包含文件用于存放可重复使用的 HTML 代码片段,例如导航栏、侧边栏、页脚等。你可以在布局文件和文章文件中使用 {% include 文件名.html %} 标签来包含这些文件。
生成网站
完成配置和内容编写后,可以在终端中运行以下命令生成网站:
jekyll build
这将在 _site 目录下生成静态 HTML 文件。你可以通过运行以下命令来启动本地服务器预览网站:
jekyll serve
然后,在浏览器中访问 http://localhost:4000 即可预览网站。
高级技巧:优化你的 Jekyll 网站
使用主题
Jekyll 有大量现成的主题可供选择。你可以通过修改 _config.yml 文件中的 theme 字段来选择主题。例如,要使用 "minima" 主题,可以这样设置:
theme: minima
你也可以自定义主题,或者从 GitHub 等平台下载第三方主题。
使用插件
Jekyll 插件可以扩展 Jekyll 的功能,例如分页、生成 Sitemap、优化 SEO 等。要使用插件,需要在 _config.yml 文件中添加 plugins 字段,并列出要使用的插件。例如,要使用 jekyll-paginate 插件,可以这样设置:
plugins: - jekyll-paginate
然后,运行 bundle install 命令安装插件依赖项。
优化 SEO
要优化 Jekyll 网站的 SEO,可以采取以下措施:
- 使用语义化的 HTML 标签: 合理使用 h1-h6 标题标签,并为图片添加 alt 属性。
- 优化网站结构: 使用清晰的 URL 结构,并创建 Sitemap 文件。
- 优化页面加载速度: 压缩 CSS 和 JavaScript 文件,并使用 CDN 加速静态资源。
- 添加 Meta 标签: 为每个页面添加 description 和 keywords 等 Meta 标签。
- 进行关键词研究: 在文章中使用相关的关键词,但不要过度堆砌。
- 创建高质量的内容: 提供有价值的内容,吸引用户访问和分享。
使用 GitHub Pages 部署
Jekyll 可以直接部署到 GitHub Pages,免费托管你的网站。只需将你的 Jekyll 项目推送到 GitHub 仓库,并将仓库设置为 GitHub Pages 即可。GitHub Pages 会自动构建你的网站并将其发布到 your_username.github.io/your_repository。
案例分析:使用 Jekyll 构建个人博客
以下是一个使用 Jekyll 构建个人博客的案例:
- 选择主题: 选择一个简洁、美观的 Jekyll 主题,例如 "minima" 或 "jekyll-theme-hacker"。
- 自定义主题: 根据自己的喜好修改主题的样式和布局。
- 编写文章: 使用 Markdown 编写高质量的文章,并添加合适的分类和标签。
- 配置插件: 使用 jekyll-paginate 插件实现分页功能,使用 jekyll-sitemap 插件生成 Sitemap 文件。
- 优化 SEO: 添加 Meta 标签,优化网站结构,并进行关键词研究。
- 部署到 GitHub Pages: 将项目推送到 GitHub 仓库,并设置为 GitHub Pages。
Jekyll 与其他静态站点生成器的比较
| 特点 | Jekyll | Hugo | Gatsby |
|---|---|---|---|
| 编程语言 | Ruby | Go | JavaScript (React) |
| 学习曲线 | 适中 | 陡峭 (但生成速度快) | 陡峭 (需要React知识) |
| 生成速度 | 较慢 | 非常快 | 适中 |
| 插件生态 | 成熟 | 较新,发展迅速 | 依赖React生态 |
| 适用场景 | 博客、文档站点 | 大型站点、高性能要求 | 复杂Web应用、需要React |
结语
Jekyll 是一款强大而灵活的静态站点生成器,它可以帮助你快速构建出令人惊艳的网站。通过本指南,相信你已经掌握了 Jekyll 的基本知识和高级技巧。现在,开始你的 Jekyll 之旅吧!
本指南中部分内容参考自 Jekyll 官方网站 和 Jekyll GitHub 仓库。