如何使用不同的布局呈现所有Jekyll页面?

我正在尝试创建一个Jekyll插件,它应该遍历所有post并使用不同的布局呈现它们。 无法弄清楚如何做到这一点。 这就是我到目前为止所拥有的:

module Jekyll class MyGenerator  Layout.new(site, site.source, '_layouts/my.html') ) page.write(?) site.pages << page end end end end 

此代码不起作用。

在下面的代码中,我使用null布局第二次渲染所有页面。 生成的文件都有后缀“_BARE”

 module Jekyll class BareHtml < Page def initialize(site, base, dest_dir, src_dir, page) @site = site @base = base @dir = dest_dir @dest_dir = dest_dir @dest_name = page.basename file_name = "#{page.basename}_BARE.html" self.process(file_name) self.read_yaml(base, page.path) self.data['layout'] = nil ### <-- set the layout name here end end class BareHtmlGenerator < Generator safe true priority :low def generate(site) # Converter for .md > .html converter = site.find_converter_instance(Jekyll::Converters::Markdown) dest = site.dest src = site.source # Create destination path FileUtils.mkpath(dest) unless File.exists?(dest) site_pages = site.pages.dup site_pages.each do |page| bare = BareHtml.new(site, site.source, dest, src, page) bare.content = converter.convert(bare.content) bare.render(site.layouts, site.site_payload) bare.write(site.dest) site.pages << bare end end end end