class ModularJekyll::Generator
Public Instance Methods
create_modular_content(page, modules, modules_dir)
click to toggle source
# 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)
click to toggle source
# 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