Jekyll:根据 potst 的 front matter 中的参数设置永久链接

Jekyll: set permalink based on parameter in potst's front matter

我有一个简单的 jekyll 站点。 _posts 中的每个 post 在其前面都有参数 author

---
layout: post
title: my title
author: John Doe
---

...

如果我想让它成为 /author/title/,我应该如何在 _confing.yml 中设置永久链接?

例如上面的 post 会有永久链接:

mysite.com/john-doe/my-title/

感谢您的帮助。

我使用 jekyll_custom_permalink 插件解决了这个问题。

安装

将插件添加到您网站的 Gemfile:

group :jekyll_plugins do
  # your other jekyll plugins...
  gem 'jekyll_custom_permalink', '~> 0.0'
end

然后运行

$ bundle install

用法

让我们假设您在 _config:

中为您的集合“项目”定义了一些选项
collections:
  projects:
    output: true
    permalink: projects/:title/

您想在项目路径中使用自定义 Front Matter。例如,如果能够在指向您的项目的链接中包含 Front Matter 变量 type 会很棒,它在属于“项目”集合的每个文件中定义。

---
layout: page
type: python
title: MyAwesomeProject
---
Some content

您可以在永久链接中使用 type 变量,方法是首先将其添加到集合的自定义永久链接占位符数组中,然后将占位符添加到前缀为 : 的永久链接设置中像所有其他 Jekyll 占位符一样。

collections:
  projects:
    output: true
    custom_permalink_placeholders: ["type"]
    permalink: projects/:type/:title/

这些设置导致如上所示的“项目”页面在 /projects/python/MyAwesomeProject 上线。

来源: https://github.com/NiklasEi/jekyll_custom_permalink/blob/master/README.md