通过在Jekyll中编程生成文件

假设我在_data文件夹中有一些数据,我想从中自动生成页面。 那就是:想象_data/structure.md如下

 chapters: - chapter1 chapter2 chapter3 ... 

我需要静态文件chapter1.mdchapter2.md …等结构非常相似(例如, chapter1.md

 --- title:chapter1 layout: default --- This is chapter1!! 

)。 有没有办法自动创建这些文件,而无需手动执行,只需更改或添加_data文件中的项目?

您可以使用生成器( 文档 )。 这可以是这样的:

 module Jekyll class DataPage < Page def initialize(site, base, dir, name) @site = site @base = base @dir = dir @name = name self.process(@name) self.data ||= {} self.data['layout'] = 'default' self.data['title'] = data end end class CategoryPageGenerator < Generator def generate(site) datas = site.data['structure'] datas.each do |data| name = "#{data}.md" page = Jekyll::DataPage.new(site, site.source, @dir, name) page.data['title'] = data page.data['layout'] = 'default' page.content = "This is #{data}" site.pages << page end end end end