Class: Jekyll::ModularContent
- Inherits:
-
Tags::IncludeTag
- Object
- Tags::IncludeTag
- Jekyll::ModularContent
- Defined in:
- lib/modular-content.rb
Instance Method Summary collapse
Instance Method Details
#parse_module(modules_dir, module_name, page, context, site) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/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) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/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.data['modules'] html = '' page.data['modules'].each do |mod_name| html += parse_module(modules_dir, mod_name, page, context, site) end html end |