在Jekyll中,我如何以编程方式修改页面的永久链接?

时间:2015-02-23 19:15:00

标签: ruby jekyll jekyll-extensions

在一个有很多页面(不是博客文章)的Jekyll网站中,我想以编程方式调整每个页面的永久链接。我尝试了一个Generator插件,如:

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 个答案:

答案 0 :(得分:1)

使用以下内容覆盖页面类可能更容易:

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

未经测试。