[英]jekyll - add stuff to pages automatically, on github pages
有没有办法获取Jekyll上页面的网址? 页面是指非后置纺织品文件,例如以下层次结构上的about.html
和download.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.