永久链接
Jekyll 支持以灵活的方式管理你网站的链接,你可以通过 Configuration 或 YAML 头信息 为每篇文章设置永久链接。你可以随心所欲地选择内建链接格式,或者自定义链接格式。默认配置为 date
。
永久链接的模板用以冒号为前缀的关键词标记动态内容,比如 date
代表 /:categories/:year/:month/:day/:title.html
。
模板变量
变量 | 描述 |
---|---|
|
文章文件名中的年份,格式如 `2013` |
|
文章文件名中的月份,格式如 `01` |
|
文章文件名中的月份,不包含首位的零,格式如 `1` |
|
文章文件名中的日期,格式如 `08` |
|
文章文件名中的日期,不包含首位的零,格式如 `8` |
|
文章文件名中的年份,后两位,格式如 `13` |
|
时钟,24 小时制,日期以文章的头信息中的 |
|
当前时钟内的分钟,日期以文章的头信息中的 |
|
当前分钟内的秒钟,日期以文章的头信息中的 |
|
由文件的文件名中确定的标题,可以被文件头信息中的 |
|
由文件的文件名中确定的 Slugified title(除数字和字母之外的字符们会被取代为连字符),可以被文件头信息中的 |
|
文章类型。如果一篇文章有多个类型,Jekyll 会创建一个目录(例如, |
内建永久链接类型
当你能够通过 template variables 来指定一个自定义永久链接时,方便起见,Jekyll 还提供了下列的内建类型。
永久链接类型 | URL 模板 |
---|---|
|
|
|
|
|
|
|
|
页面(Pages) 和集合(collections)
permalink
配置用来指定博客的永久链接模板。页面和集合同样有它们自己的默认永久链接模板;页面的默认模板是 /:path/:basename
,集合的默认模板是 /:collection/:path`。
这些样式被修改用来匹配在文章永久链接设置里的后缀式。例如,含有反斜杠 /
的永久链接模板 pretty
会更新页面的永久链接,使其同样包含一个反斜杠:
/:path/:basename/
。含有文件扩展名的永久链接模板 date
会更新页面的永久链接,使其同样包含文件扩展名:
/:path/:basename:output_ext
。这对任意自定义永久链接模板同样适用。
单独页面或集合文件的永久链接总能够在页面或者文件的头信息里重写覆盖。另外,给定的集合的永久链接能在集合配置中自定义设置。
永久链接模板举例
比如文件名: /2009-04-29-slap-chop.textile
URL 模板 | 对应的永久链接 URL |
---|---|
没有配置或 |
|
|
|
|
|
|
|
具体细节见于 无扩展名链接(Extensionless permalinks)。 |
|
无扩展名永久链接(Extensionless permalinks)
Jekyll 支持即不包含反斜杠也不包含文件扩展名的永久链接,但这需要网络服务端的额外支持才能正常工作。当使用无扩展名永久链接时,写到硬盘上的输出文件依然会保留正确的文件扩展名(典型的比如,.html
),所以网络服务端必须能够 map 那些没有文件扩展名的文件的请求。
无论 GitHub Pages 还是 Jekyll 内置的 WEBrick server 都能够正确处理这些请求,不需要任何额外工作。
Apache
Apache 网络服务端对内容协商(content negotiation)有着非常广泛的支持,而且能够通过在你的 httpd.conf
或者 .htaccess
文件中设置 multiviews 选项来处理无扩展名的 URLs:
Nginx
try_files 指令允许你指定一个文件列表搜索,用来处理请求。如果请求的 URL 的精确匹配未找到的的话,下列配置会让 nginx 搜索含有 .html
扩展名的文件。