Class: Heartml::BridgetownRenderer

Inherits:
Bridgetown::Builder
  • Object
show all
Defined in:
lib/heartml/bridgetown_renderer.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.component_overrides(klass) ⇒ Object

Called when a ‘Bridgetown::Component` includes `Heartml`, so we can bypass Bridgetown’s normal component template handling



7
8
9
# File 'lib/heartml/bridgetown_renderer.rb', line 7

def self.component_overrides(klass)
  klass.define_method(:template) { call }
end

Instance Method Details

#buildObject



11
12
13
# File 'lib/heartml/bridgetown_renderer.rb', line 11

def build
  render_heart_modules
end

#render_heart_modulesObject



15
16
17
18
19
20
21
22
# File 'lib/heartml/bridgetown_renderer.rb', line 15

def render_heart_modules
  inspect_html do |doc, resource|
    view_context = Bridgetown::ERBView.new(resource)

    rdr = Heartml::TemplateRenderer.new(body: doc.at_css("body"), context: view_context)
    rdr.call
  end
end