Class: Middleman::Renderers::Haml
- Defined in:
- lib/middleman-core/renderers/haml.rb
Overview
Haml Renderer
Constant Summary
Constants included from Contracts
Instance Attribute Summary
Attributes inherited from Extension
Instance Method Summary collapse
- #add_exposed_to_context(context) ⇒ Object
-
#initialize(app, options = {}, &block) ⇒ Haml
constructor
A new instance of Haml.
Methods inherited from Extension
activated_extension, #after_build, #after_configuration, 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, #manipulate_resource_list, option, #ready, resources
Methods included from Contracts
Constructor Details
#initialize(app, options = {}, &block) ⇒ Haml
Returns a new instance of Haml.
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/middleman-core/renderers/haml.rb', line 52 def initialize(app, ={}, &block) super if Object.const_defined?('::Haml::Options') # Haml 5 and older ::Haml::Options.defaults[:context] = nil ::Haml::Options.send :attr_accessor, :context else # Haml 6+ ::Haml::Engine. context: nil end if defined?(::Haml::TempleEngine) ::Haml::TempleEngine. context: nil end # rubocop:disable NestedMethodDefinition [::Haml::Filters::Sass, ::Haml::Filters::Scss, ::Haml::Filters::Markdown].each do |f| f.class_exec do if respond_to?(:template_class) # Haml 5 and older def self.(text, ) = .dup [:context] = [:context] text = template_class.new(nil, 1, ) { text }.render super(text, ) end else # Haml 6+ def initialize( = {}) super @context = [:context] end def compile_with_tilt(node, name, indent_width: 0) = { context: @context } source = node.value[:text] result = ::Tilt["t.#{name}"].new(nil, 1, ) { source }.render temple = [:multi, [:static, result.gsub(/^/, ' ' * indent_width)]] source.lines.size.times do temple << [:newline] end temple end end end end # rubocop:enable NestedMethodDefinition ::Tilt.prefer(::Middleman::Renderers::HamlTemplate, :haml) # Add haml helpers to context ::Middleman::TemplateContext.send :include, ::Haml::Helpers end |
Instance Method Details
#add_exposed_to_context(context) ⇒ Object
104 105 106 107 108 |
# File 'lib/middleman-core/renderers/haml.rb', line 104 def add_exposed_to_context(context) super context.init_haml_helpers if context.respond_to?(:init_haml_helpers) end |