Class: ModularJekyll::Generator
- Inherits:
-
Jekyll::Generator
- Object
- Jekyll::Generator
- ModularJekyll::Generator
- Defined in:
- lib/modular-jekyll.rb
Instance Method Summary collapse
Instance Method Details
#create_modular_content(page, modules, modules_dir) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/modular-jekyll.rb', line 5 def create_modular_content(page, modules, modules_dir) content = '' modules.each do | mod | module_html = ''; params = Hash.new if mod.is_a? String # If we've a string, just load the file module_html = File.read File.join Dir.pwd, modules_dir, "#{mod}.html" else # Otherwise, we have params. Load the file and inject the params mod.select do |modName, modParams| module_html = File.read File.join Dir.pwd, modules_dir, "#{modName}.html" params['include'] = modParams end end # Pass page into our partial params['page'] = page tmpl = Liquid::Template.parse(module_html).render(params) # Append it to the content content += tmpl end content end |
#generate(site) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/modular-jekyll.rb', line 34 def generate(site) modules_dir = '_includes/modules' if site.config['modules'] modules_dir = site.config['modules'] end site.pages.map do | page | if page.data['modules'] page.data['moduleContent'] = create_modular_content( page, page.data['modules'], modules_dir ) end page end end |