永久链接
永久链接是页面、帖子或集合的输出路径。它们允许你将源代码的目录结构与输出中的目录结构分开。
前端信息
设置永久链接的最简单方法是使用前端信息。你将前端信息中的 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
对于页面和集合(不包括 posts
和 drafts
)变为 /:title.html
。
占位符
以下是可用占位符的完整列表
变量 | 说明 |
---|---|
|
文章文件名中的年份,四位数字。可以通过文档的 |
|
文章文件名中的年份,不含世纪。(00..99)可以通过文档的 |
|
文章文件名中的月份。(01..12)可以通过文档的 |
|
文章文件名中的月份,不含前导零。可以通过文档的 |
|
三位月份缩写,例如“Jan”。 |
|
完整月份名称,例如“January”。 |
|
文章文件名中的月份中的天数。(01..31)可以通过文档的 |
|
文章文件名中的月份中的天数,不含前导零。可以通过文档的 |
|
文章文件名中的年份中的顺序天数,含前导零。(001..366) |
|
周数,在 1 月初和 12 月底最多可能与月份年份相差三天 |
|
当前年份的周数,从第一周开始,其大部分天数在 1 月。(01..53) |
|
星期几,从星期一开始。(1..7) |
|
三位星期几缩写,例如“Sun”。 |
|
星期几名称,例如“Sunday”。 |
|
一天中的小时数,24 小时制,从文章的 |
|
文章的 |
|
文章的 |
|
文章文件名中的标题。可以通过文档的 |
|
文章文件名中的 slug 化标题(任何非数字和字母的字符都替换为连字符)。可以通过文档的 |
|
此帖子的指定类别。如果一个帖子有多个类别,Jekyll 将创建一个层次结构(例如 |
|
此帖子的指定类别,但已slugify。如果一个类别由多个单词组成,Jekyll 将把所有字母小写,并将任何非字母数字字符替换为连字符。(例如,
如果一个帖子有多个类别,Jekyll 将创建一个层次结构(例如 |
|
输出文件的扩展名。(默认包含,通常不需要。) |
内置格式
对于帖子,Jekyll 还提供了以下内置样式,以方便使用
永久链接样式 | URL 模板 |
---|---|
|
|
|
|
|
|
|
|
|
|
无需键入 permalink: /:categories/:year/:month/:day/:title/
,只需键入 permalink: pretty
即可。
通过前端事项指定永久链接
内置永久链接样式在前置事项中不被识别。因此,permalink: pretty
将不起作用。
集合
对于集合(包括 posts
和 drafts
),你可以在 _config.yml
中的集合配置中覆盖全局永久链接
collections:
my_collection:
output: true
permalink: /:collection/:name
集合具有以下可用占位符
变量 | 说明 |
---|---|
|
包含集合的标签。 |
|
相对于集合目录的文档路径,包括文档的基本文件名。 |
|
文档的基本文件名,其中每个空格和非字母数字字符序列都替换为连字符。 |
|
如果文档中存在 |
|
输出文件的扩展名。(默认包含,通常不需要。) |
页面
对于页面,你必须使用前端事项来覆盖全局永久链接,如果你在 _config.yml
中的默认值中设置了永久链接,它将被忽略。
页面有以下占位符可用
变量 | 说明 |
---|---|
|
相对于站点源目录的页面路径,不包括页面的基本文件名。 |
|
页面的基本文件名 |
|
输出文件的扩展名。(默认包含,通常不需要。) |