假设我在_data
文件夹中有一些数据,我想从中自动生成页面。那就是:想象_data/structure.md
如下所示
chapters:
-
chapter1
chapter2
chapter3
...
我需要静态文件chapter1.md
,chapter2.md
...等结构非常相似(例如,chapter1.md
是
---
title:chapter1
layout: default
---
This is chapter1!!
)。 有没有办法自动创建这些文件,而无需手动执行,只需更改或添加_data
文件中的项目?
答案 0 :(得分:1)
您可以使用生成器(documentation)。 这可能是这样的:
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