固定链接 永久链接 Permalinks
永久链接是页面、文章或集合的输出路径。它们允许你在源代码的目录结构和输出目录之间做不同的组织。
页面头部参数(Front Matter)
设置永久链接最简单的方法是使用页面头部参数(front matter)。你可以在页面头部参数中设置 permalink
变量为你希望的输出路径。
例如,你的网站上可能有一个页面位于 /my_pages/about-me.html
,你希望输出的 URL 是 /about/
。你可以在该页面的页面头部参数中设置:
---
permalink: /about/
---
全局配置
为你网站的每个页面在页面头部参数中设置永久链接并不方便。幸运的是,Jekyll 允许你在 _config.yml
文件中全局设置永久链接结构。
要设置全局永久链接,你可以在 _config.yml
中使用 permalink
变量。你可以使用占位符来指定你想要的输出路径。例如:
permalink: /:categories/:year/:month/:day/:title:output_ext
请注意,页面和集合(不包括 posts
和 drafts
)没有时间和类别(对于页面,上述 :title
等价于 :basename
),这些永久链接样式的部分在输出时会被忽略。
例如,对于 posts
集合,永久链接样式 /:categories/:year/:month/:day/:title:output_ext
会变为 /:title.html
,而对于页面和集合(不包括 posts
和 drafts
)来说,输出为 /:title.html
。
占位符 Placeholders
以下是可用占位符的完整列表:
变量 Variable | 说明 Description |
---|---|
|
从文章文件名中提取的四位数字年份。可通过文档的 |
|
从文章文件名中提取的年份,不包括世纪部分(00..99)。可通过文档的 |
|
从文章文件名中提取的月份。(01..12)可通过文档的 |
|
从文章文件名中提取的月份,不包括前导零。可通过文档的 |
|
三字母月份缩写,例如“Jan”。 |
|
完整的月份名称,例如“January”。 |
|
从文章文件名中提取的日期(01..31)。可通过文档的 |
|
从文章文件名中提取的日期,不包括前导零。可通过文档的 |
|
从文章文件名中提取的年度天数,带前导零。(001..366) |
|
周年份,可能与月份年份不同,尤其是在一月初和十二月末的三天内。 |
|
当前年份的周数,第一周包含大部分一月的天数。(01..53) |
|
一周中的天数,从星期一开始。(1..7) |
|
三字母星期几缩写,例如“Sun”。 |
|
星期几的名称,例如“Sunday”。 |
|
一天中的小时,24小时制,来自文章的 |
|
小时中的分钟,来自文章的 |
|
分钟中的秒数,来自文章的 |
|
文档文件名中的标题。可以通过文档的 |
|
文档文件名中的 slug(标题的缩写形式,所有非字母数字字符替换为连字符)。可以通过文档的 |
|
文章指定的类别。如果文章有多个类别,Jekyll 会创建一个层级(例如 |
|
文章指定的类别,但已被 slug化。如果类别由多个单词组成,Jekyll 会将所有字母小写,并将任何非字母数字字符替换为连字符。(例如 如果文章有多个类别,Jekyll 会创建一个层级(例如 |
|
输出文件的扩展名。(默认包含,通常不需要) |
文章(posts)内置格式
对于文章(posts),Jekyll 还提供了以下几种内置格式以方便使用:
固定链接样式 Permalink Style | URL 模板 URL Template |
---|---|
|
|
|
|
|
|
|
|
|
|
你可以直接使用 permalink: pretty
来代替 permalink: /:categories/:year/:month/:day/:title/
。
通过Front Matter(页面头部参数)指定固定链接
内置的固定链接样式在Front Matter(页面头部参数)中无法识别。因此,permalink: pretty
是无法生效的。
集合 Collections
对于集合(包括 posts
和 drafts
),你可以在 _config.yml
文件中覆盖集合的全局固定链接:
collections:
my_collection:
output: true
permalink: /:collection/:name
集合支持以下占位符:
变量 Variable | 描述 Description |
---|---|
|
包含该集合的标签。 |
|
相对于集合目录的文档路径,包含文档的基本文件名。 |
|
文档的基本文件名,将所有空格和非字母数字字符替换为连字符。 |
|
|
|
输出文件的扩展名。(默认包含,通常不需要。) |
页面 Pages
对于页面,你需要在Front Matter(页面头部参数)中设置固定链接(permalink)来覆盖全局配置。
如果你在 _config.yml
的默认Front Matter(页面头部参数)(front matter defaults)中设置了 permalink
,它将被忽略。
页面支持以下占位符:
变量 Variable | 描述 Description |
---|---|
|
页面相对于站点源目录的路径,不包括页面的基本文件名。 |
|
页面的基本文件名。 |
|
输出文件的扩展名。(默认包含,通常不需要。) |