通过在Jekyll中编程生成文件
假设我在_data
文件夹中有一些数据,我想从中自动生成页面。 那就是:想象_data/structure.md
如下
chapters: - chapter1 chapter2 chapter3 ...
我需要静态文件chapter1.md
, chapter2.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