2010-05-28 165 views
0

有沒有辦法獲得在Jekyll上的頁面的url?通過網頁我的意思是不交的紡織文件,如以下層次about.htmldownload.htmljekyll - 在github頁面上自動添加內容到頁面

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參數,如果可能的話。

非常感謝!

回答

3

我認爲答案是否定的。下面是the Jekyll wiki什麼是全球page項目:

上崗,這是在YAML接待問題的數據和計算的數據(如URL和日期)的聯合。對於普通頁面來說,這只是YAML的前沿問題。

即使你可以重新配置哲基爾的發動機在本地爲你做,我不知道你怎麼能讓Github上自己的頁面工作(因爲他們將要使用的香草化身,而不是你的)。

+0

該死。我希望它不是......限制。非常感謝,我想我只會使用YAML(或者用假日期創建帖子,例如0000-01-01) – kikito 2010-05-30 19:37:12

+0

一種方法是在本地系統上生成Jekyll _site /文件(您可以將Jekyll修改得儘可能多如你所願 - 包括插件)。這就是你的主分支。然後使用Grancher(http://timeless.judofyr.net/grancher)將_sites /複製到gh-pages分支,使用簡單的「rake publish」命令進行提交和推送。 – 2011-02-06 05:55:49

3

現在可以通過它的新插件系統來修改jekyll類了!

只要您_plugins目錄中添加該文件(page.rb):

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這裏,但我可能還增加了更多的方法等