Ruby 在github页面上自动向页面添加内容
有没有办法获取Jekyll上页面的url?我所说的页面是指以下层次结构中的非post textile文件,如Ruby 在github页面上自动向页面添加内容,ruby,github,monkeypatching,jekyll,jekyll-extensions,Ruby,Github,Monkeypatching,Jekyll,Jekyll Extensions,有没有办法获取Jekyll上页面的url?我所说的页面是指以下层次结构中的非post textile文件,如about.html和download.html: root | +- _includes | +- _layouts | +- _posts | +- _config.yml | +- index.textile | +- about.textile | `- download.textile 我想这样做: <h1><a href="{{
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包含在页面中。另一方面,页面似乎没有包含任何类似的内容——它们确实具有我需要的属性(大约),但它们没有在上导出到_liquid
;我想重新定义它。有办法做到这一点吗
我已经找到了,但我不知道它是否能在我的目标环境(github页面)上工作
如果可能的话,我希望避免在所有yaml头上都包含url参数
非常感谢 我认为答案是否定的。以下是关于全球
页面项中的内容:
对于POST,这是YAML前端中的数据和计算数据(如URL和日期)的联合。对于常规页面,这只是YAML的首要问题
即使你可以在本地重新配置Jekyll的引擎,我也不确定你如何在Github自己的页面上实现这一点(因为他们将使用香草Jekyll而不是你的)。现在可以通过新的插件系统来monkeypatch 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
我刚刚将修改为_liquid
,但我还可以添加更多方法等。看起来page.rb to _liquid现在支持您需要的“url”数据
该死。我希望不是这样。。。限制。非常感谢,我想我只会使用YAML(或创建带有假日期的帖子,例如0000-01-01)一个选项是在本地系统上生成Jekyll_站点/文件(您可以让Jekyll进行任意修改,包括插件)。这一切都在你的主分支。然后使用Grancher()将_sites/复制到gh pages分支,使用简单的“rake publish”命令提交和推送。为了反映这一点,我自己修改了维基。谢谢