Sha256: 9e1ea4666b94bcc2901522e2880b1c4902399f3af720df3c3031ab162257c7f0

Contents?: true

Size: 1.14 KB

Versions: 4

Compression:

Stored size: 1.14 KB

Contents

# frozen_string_literal: true

module Heartml
  class BridgetownRenderer < Bridgetown::Builder
    def build
      render_heart_modules
    end

    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.define_singleton_method(:view_context) { view_context }
        rdr.call
      end
    end
  end
end

Bridgetown.initializer :heartml do |config|
  Bridgetown::Component.extend ActiveSupport::DescendantsTracker

  Heartml.module_eval do
    def render_in(view_context, rendering_mode: :string, &block)
      self.rendering_mode = rendering_mode
      super(view_context, &block)
    end
  end

  # Eager load all components
  config.hook :site, :after_reset do |site|
    unless site.config.eager_load_paths.find { _1.end_with?(site.config.components_dir) }
      site.config.eager_load_paths << site.config.autoload_paths.find { _1.end_with?(site.config.components_dir) }
    end
  end

  config.html_inspector_parser "nokolexbor"
  config.builder Heartml::BridgetownRenderer
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
heartml-1.0.0.beta7 lib/heartml/bridgetown_renderer.rb
heartml-1.0.0.beta6 lib/heartml/bridgetown_renderer.rb
heartml-1.0.0.beta5 lib/heartml/bridgetown_renderer.rb
heartml-1.0.0.beta4 lib/heartml/bridgetown_renderer.rb