Class: Middleman::Renderers::Liquid
- Defined in:
- middleman-core/lib/middleman-core/renderers/liquid.rb
Overview
Liquid Renderer
Constant Summary
Constants included from Contracts
Instance Attribute Summary
Attributes inherited from Extension
Instance Method Summary collapse
-
#after_configuration ⇒ Object
After config, setup liquid partial paths.
- #manipulate_resource_list_container!(resource_list) ⇒ Object
- #map_value(thing) ⇒ Object
-
#read_template_file(template_path) ⇒ Object
Called by Liquid to retrieve a template file.
- #stringify_recursive(hash) ⇒ Object
Methods inherited from Extension
activated_extension, #add_exposed_to_context, #after_build, after_extension_activated, #after_extension_activated, #before_build, #before_configuration, clear_after_extension_callbacks, config, define_setting, expose_to_application, expose_to_config, expose_to_template, global_config, helpers, #initialize, #manipulate_resource_list, option, #ready, resources
Methods included from Contracts
Constructor Details
This class inherits a constructor from Middleman::Extension
Instance Method Details
#after_configuration ⇒ Object
After config, setup liquid partial paths
11 12 13 |
# File 'middleman-core/lib/middleman-core/renderers/liquid.rb', line 11 def after_configuration ::Liquid::Template.file_system = self end |
#manipulate_resource_list_container!(resource_list) ⇒ Object
24 25 26 27 28 29 30 31 32 33 |
# File 'middleman-core/lib/middleman-core/renderers/liquid.rb', line 24 def manipulate_resource_list_container!(resource_list) return unless app.extensions[:data] resource_list.by_source_extension('.liquid').each do |resource| # Convert data object into a hash for liquid resource.( data: stringify_recursive(app.extensions[:data].data_store.to_h) ) end end |
#map_value(thing) ⇒ Object
41 42 43 44 45 46 47 48 49 50 |
# File 'middleman-core/lib/middleman-core/renderers/liquid.rb', line 41 def map_value(thing) case thing when Hash stringify_recursive(thing) when Array thing.map { |v| map_value(v) } else thing end end |
#read_template_file(template_path) ⇒ Object
Called by Liquid to retrieve a template file
16 17 18 19 20 21 |
# File 'middleman-core/lib/middleman-core/renderers/liquid.rb', line 16 def read_template_file(template_path) file = app.files.find(:source, "#{File.dirname(template_path)}/_#{File.basename(template_path)}.liquid") raise ::Liquid::FileSystemError, "No such template '#{template_path}'" unless file file.read end |
#stringify_recursive(hash) ⇒ Object
35 36 37 38 39 |
# File 'middleman-core/lib/middleman-core/renderers/liquid.rb', line 35 def stringify_recursive(hash) {}.tap do |h| hash.each { |key, value| h[key.to_s] = map_value(value) } end end |