Jekyll是一个简单、易于使用的静态站点生成器,它使用 Markdown 或 Textile 作为标记语言,并使用 Liquid 作为模板引擎。通过Jekyll,你可以将纯文本转换为静态网站,非常适合博客、文档站点和个人主页。本指南将深入探讨Jekyll的各个方面,从安装配置到高级技巧,助你快速上手并构建出令人惊艳的静态网站。
Jekyll是一款免费开源的静态站点生成器,由 Tom Preston-Werner(GitHub 的联合创始人)创建。它读取包含 YAML 头部的文本文件(可以是 Markdown、Textile 等格式),利用 Liquid 模板引擎进行渲染,最终生成静态 HTML 文件。这意味着你的网站无需服务器端语言(如 PHP、Python 或 Ruby)的支持,也能快速、安全地运行。
要使用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 锁定文件
_config.yml
是 Jekyll 的主要配置文件,用于设置网站的各种参数,如标题、描述、主题、插件等。以下是一个示例配置文件:
title: 我的博客email: your_email@example.comdescription: >- 欢迎来到我的博客,这里分享技术、生活和思考。baseurl: "" # 如果你的网站部署在子目录中,需要设置 baseurlurl: "https://example.com" # 你的网站域名twitter_username: usernamegithub_username: usernametheme: minimaplugins: - jekyll-paginate
你可以根据自己的需求修改配置文件。
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
字段指定文章的标签。
布局文件定义了网站的整体结构和样式。你可以创建多个布局文件,并在文章文件中指定要使用的布局文件。以下是一个示例布局文件:
<!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 }}
变量用于插入文章内容。
包含文件用于存放可重复使用的 HTML 代码片段,例如导航栏、侧边栏、页脚等。你可以在布局文件和文章文件中使用 {% include 文件名.html %}
标签来包含这些文件。
完成配置和内容编写后,可以在终端中运行以下命令生成网站:
jekyll build
这将在 _site
目录下生成静态 HTML 文件。你可以通过运行以下命令来启动本地服务器预览网站:
jekyll serve
然后,在浏览器中访问 http://localhost:4000
即可预览网站。
Jekyll 有大量现成的主题可供选择。你可以通过修改 _config.yml
文件中的 theme
字段来选择主题。例如,要使用 "minima" 主题,可以这样设置:
theme: minima
你也可以自定义主题,或者从 GitHub 等平台下载第三方主题。
Jekyll 插件可以扩展 Jekyll 的功能,例如分页、生成 Sitemap、优化 SEO 等。要使用插件,需要在 _config.yml
文件中添加 plugins
字段,并列出要使用的插件。例如,要使用 jekyll-paginate 插件,可以这样设置:
plugins: - jekyll-paginate
然后,运行 bundle install
命令安装插件依赖项。
要优化 Jekyll 网站的 SEO,可以采取以下措施:
Jekyll 可以直接部署到 GitHub Pages,免费托管你的网站。只需将你的 Jekyll 项目推送到 GitHub 仓库,并将仓库设置为 GitHub Pages 即可。GitHub Pages 会自动构建你的网站并将其发布到 your_username.github.io/your_repository
。
以下是一个使用 Jekyll 构建个人博客的案例:
特点 | Jekyll | Hugo | Gatsby |
---|---|---|---|
编程语言 | Ruby | Go | JavaScript (React) |
学习曲线 | 适中 | 陡峭 (但生成速度快) | 陡峭 (需要React知识) |
生成速度 | 较慢 | 非常快 | 适中 |
插件生态 | 成熟 | 较新,发展迅速 | 依赖React生态 |
适用场景 | 博客、文档站点 | 大型站点、高性能要求 | 复杂Web应用、需要React |
Jekyll 是一款强大而灵活的静态站点生成器,它可以帮助你快速构建出令人惊艳的网站。通过本指南,相信你已经掌握了 Jekyll 的基本知识和高级技巧。现在,开始你的 Jekyll 之旅吧!
本指南中部分内容参考自 jekyllrb.com/" rel="nofollow">Jekyll 官方网站 和 jekyll" rel="nofollow">Jekyll GitHub 仓库。