繁体   English   中英

jekyll-在github页面上自动将内容添加到页面

[英]jekyll - add stuff to pages automatically, on github pages

有没有办法获取Jekyll上页面的网址? 页面是指非后置纺织品文件,例如以下层次结构上的about.htmldownload.html

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

我想做这样的事情:

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

这适用于帖子,因为它们的URL包含在帖子的to_liquid方法中 另一方面,页面似乎不包含类似的内容-它们确实具有我需要的属性(或看起来如此),但它们并不将其导出到to_liquid 我想重新定义它。 有没有办法做到这一点?

我已经找到jekyll_extensions ,但是我不知道它是否可以在我的目标环境(github页面)上工作。

如果可能的话,我想避免在所有yaml头上都包含一个url参数。

非常感谢!

我认为答案是否定的。 这是有关全球page项中的Jekyll Wiki

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

即使您可以重新配置Jekyll的引擎以在本地为您执行此操作,我也不知道您如何在Github自己的Pages上进行这项工作(因为它们将使用香草Jekyll而不是您的Jekyll)。

现在可以通过其新的插件系统对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 ,但我也可以添加更多方法,等等。

看来page.rb to_liquid现在支持您需要的“ URL”数据了。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM