【问题标题】:jekyll - add stuff to pages automatically, on github pagesjekyll - 在 github 页面上自动向页面添加内容
【发布时间】:2011-02-25 02:05:03
【问题描述】:

有没有办法获取 Jekyll 上页面的 url?我所说的页面是指非发布纺织文件,例如以下层次结构中的about.htmldownload.html

root
 |
 +- _includes
 |
 +- _layouts
 |
 +- _posts
 |
 +- _config.yml
 |
 +- index.textile
 |
 +- about.textile
 |
 `- download.textile

我想做这样的事情:

<h1><a href="{{ page.url }}">{{ page.title }}</a></h1>

这适用于帖子,因为它们的网址包含在 the post's to_liquid method 中。另一方面,页面似乎没有包含任何类似的东西——它们确实有我需要的属性(或者it seems),但它们不会在to_liquid 上导出它们;我想重新定义它。有没有办法做到这一点?

我找到了jekyll_extensions,但我不知道它是否适用于我的目标环境(github 页面)。

如果可能的话,我希望避免在所有 yaml 头中包含 url 参数。

非常感谢!

【问题讨论】:

    标签: ruby github monkeypatching jekyll jekyll-extensions


    【解决方案1】:

    我认为答案是否定的。这里是 the Jekyll wiki 全球 page 项目中的内容:

    对于 Posts,这是 YAML Front Matter 中的数据与计算数据(例如 URL 和日期)的并集。对于常规页面,这只是 YAML Front Matter。

    即使您可以重新配置 Jekyll 的引擎以在本地为您执行此操作,我不确定您如何在 Github 自己的页面上进行这项工作(因为他们将使用原版 Jekyll 而不是您的)。

    【讨论】:

    • 该死的。我希望它不是那么……限制。非常感谢,我想我将只使用 YAML(或创建带有假日期的帖子,例如 0000-01-01)
    • 一种选择是在您的本地系统上生成 Jekyll _site/ 文件(您可以根据需要对 Jekyll 进行任意修改 - 包括插件)。这一切都在你的主分支中。然后使用 Grancher (timeless.judofyr.net/grancher) 将 _sites/ 复制到 gh-pages 分支,使用简单的“rake publish”命令提交和推送。
    【解决方案2】:

    现在可以通过其新的插件系统对 jekyll 类进行猴子补丁!

    只需将此文件 (page.rb) 添加到您的 _plugins 目录中:

    module Jekyll
      class Page
        def to_liquid
          self.data.deep_merge({
            "url" => File.join(@dir, self.url),
            "content" => self.content,
            "dir" => self.dir,
            "name" => self.name,
            "ext" => self.ext,
            "basename" => self.basename
          })
        end
      end
    end
    

    我刚刚在这里修改了to_liquid,但我还可以添加更多方法等。

    【讨论】:

      【解决方案3】:

      看起来 page.rb to_liquid 现在确实支持您需要的“url”数据......

      https://github.com/mojombo/jekyll/blob/master/lib/jekyll/page.rb

      【讨论】:

      • 是的。我自己修改了维基以反映这一点。谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-01
      • 1970-01-01
      • 2017-11-12
      • 2020-09-10
      • 2021-08-31
      • 2018-12-23
      • 2021-08-11
      相关资源
      最近更新 更多