2016-05-13 1 views
0

_dataフォルダに、自動的にページを生成したいデータがあるとします。それは次のとおりです。_data/structure.mdジキルでプログラミングしてファイルを生成する

chapters: 
    - 
    chapter1 
    chapter2 
    chapter3 
    ... 

を次のようなものであると私は静的ファイルchapter1.mdchapter2.mdを必要と想像...などの構造に非常に類似している上(例えば、chapter1.md

--- 
title:chapter1 
layout: default 
--- 

This is chapter1!! 

です) 。 _dataファイル内の項目を変更または追加するだけで、手作業でこれらのファイルを自動的に作成する方法はありますか?

+0

コンテンツ(「This is chapter1 !!」など)はすべてのファイルで異なる必要がありますか? –

+0

@DavidJacquelパラメータが 'chapter1'のみに依存しますが、' _data'に含まれるものより多くの情報は必要ありません。 –

答えて

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 
+0

うまく動作します!まったく同じことはしますが、生成されたファイルを特定のフォルダに保存するのはどうでしょうか? (つまり、 '_site'の代わりに' _site/chapters')私は、 'initialize'にあるコードのいくつか余分な部分が –

+1

であると思います:' @dir = 'chapters'' –

関連する問題