2015-02-23 49 views
1

在一個有很多頁面(而不是博客文章)的Jekyll站點中,我想以編程方式調整每個頁面的固定鏈接。我嘗試了發電機插件,喜歡的東西:在Jekyll中,我如何以編程方式修改頁面的固定鏈接?

module MySite 
    class MySiteGenerator < Jekyll::Generator 
    def generate(site) 
     site.pages.each do |page| 
     page.data['permalink'] = '/foo' + page.url 
     # real world manipulation of course more complicated 
     end 
    end 
    end 
end 

不過雖然這將運行並設置page.data['permalink']場,輸出仍然是相同的。

有什麼我做錯了,還是有完全不同的方式嗎?謝謝!

回答

1

它可以更容易地替換網頁類是這樣的:

module Jekyll 
    class Page 
    alias orig_permalink permalink 
    def permalink 
     permalink = orig_permalink 
     newPermalink = "foo/#{permalink}" 
    end 
    end 
end 

未經測試。

+0

工程,真棒! – skagedal 2015-02-23 21:21:47

+0

其實我太快了,它不起作用。 :(請參閱https://github.com/skagedal/permalink_mod_test上的示例 - 在「主題」下有一個index.html頁面和兩個頁面,但只有索引頁面包含在生成的_site中 – skagedal 2015-02-24 13:51:14

+0

但是 - 如果頁面已經有一個「永久鏈接」在其前面的問題,它被包括在_site與永久鏈接正確修改。現在已經證明這一點,在回購中添加了第三頁。 – skagedal 2015-02-24 13:54:44

相關問題