class Jekyll::ModularContent
Public Instance Methods
parse_module(modules_dir, module_name, page, context, site)
click to toggle source
# File lib/jekyll/modular-content.rb, line 3 def parse_module(modules_dir, module_name, page, context, site) include_data = Hash.new module_path = nil if module_name.is_a? String module_path = File.join(modules_dir, "#{module_name}.html") else module_name.select do |file_name, params| module_path = File.join(modules_dir, "#{file_name}.html") include_data = params end end context['include'] = include_data module_html = site.liquid_renderer .file(module_path) .parse(read_file(module_path, context)) .render!(context) context['include'] = nil module_html end
render(context)
click to toggle source
# File lib/jekyll/modular-content.rb, line 27 def render(context) site = context.registers[:site] page_data = context.environments.first['page'] page = site.pages.detect { |page| page.url == page_data['url']} renderer = Jekyll::Renderer.new(site, page, {}) modules_dir = File.join(site.source, '_includes/modules') if site.config['modules'] modules_dir = File.join(site.source, site.config['modules']) end return unless page && page.data && page.data['modules'] html = '' page.data['modules'].each do |mod_name| html += parse_module(modules_dir, mod_name, page, context, site) end html end