Ruby 在github页面上自动向页面添加内容

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="{{

有没有办法获取Jekyll上页面的url?我所说的页面是指以下层次结构中的非post textile文件,如
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”命令提交和推送。为了反映这一点,我自己修改了维基。谢谢