2015-02-23 51 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

相关问题