【问题标题】:Jekyll:Use front matter in permalinksJekyll:在永久链接中使用正面内容
【发布时间】:2017-01-26 15:59:20
【问题描述】:

根据Jekyll Docs,您可以像这样向永久链接添加类别:/:categories,但是如果我想使用不是类别的前端内容怎么办?例如,我有一个名为state 的前台事项。我尝试添加/:state 无济于事。

例如:state/:state 是我的永久链接。在我的前面,我有以下几点:

---
state: tx
---

那么我的网址将是state/tx

我意识到我可以在每个页面的前面创建一个自定义永久链接,但我正在寻找自动的东西,因为我有不太精明的用户更新网站。此外,categories 并不是我的内容管理员应该使用状态缩写的明显指标。

【问题讨论】:

    标签: jekyll


    【解决方案1】:

    您可能已经注意到了。使用default front matter 状态页面可以实现这一点。可以实现自动生成永久链接。

    通过将以下内容添加到_config.yml

    defaults:
      -
        scope:
          path: "_states"                       # states' page location
        values:
          permalink: /state/:categories/:slug/   
    

    并在每个页面中,使用 yaml 前端,例如:

    ---
    category: tx
    ---
    

    但是如果你想在这里使用“类别”,并且你可以在你的网站上使用本地困扰(例如 github 页面默认不支持它们)然后添加一个 @站点生成前运行的987654322@,从每个页面的yaml前端中查找state的值,放到相应的文件夹中。

    【讨论】:

    • 是的,默认 Front Matter 是一个令人兴奋的功能,但 Jekyll Admin 不允许这样做。我可能不得不做那个生成器选项,这看起来很有希望。
    • 然后,检查jekyll doc generator中的第二个代码示例,并在处理前使用#read_yaml获取yaml值
    • 谢谢老兄,我知道这会有些诡计,但到目前为止我一直在搞清楚 jekyll。
    • 是的,另一个选项,如果你喜欢玩 ruby​​ 代码,直接获取parse the yaml,查找"state: state-value",并添加category: state-value。它不像jekyll-ish。还有一点 hacky .. 但这是另一种选择 :)
    • 重要提示:这仅适用于 _post 内容类型。这不适用于集合jekyllrb.com/docs/permalinks/#collections
    【解决方案2】:

    “充当占位符”,您不会在 URL 中看到 /:categories,它表示如果您发布的帖子属于某个类别,则帖子类别的名称将出现在该位置。

    例如:有一个带有以下前题的帖子:

    ---
    categories: mycat
    ---
    

    那么该帖子 URL 将以 /mycat/... 开头。

    如果您希望在 perm a 链接中替换包含在前面的自定义变量,这是无法做到的。您可以将自定义字符串添加到永久链接,但不能添加变量。

    【讨论】:

    • 是的,我很清楚我可以在我的永久链接中添加:categories,但是像':state'这样的自定义前端内容呢。例如:` --- state: tx --- ` 那么/:state/ 的 URL 将显示为/tx/
    • 啊,希望将来可以实现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-15
    • 2021-11-04
    • 2013-03-21
    • 2019-07-27
    • 2017-05-06
    相关资源
    最近更新 更多