Sha256: ff9b507357cc13cd3988e62536d5504284a6602c07830ee3a381ab6ce28fc997
Contents?: true
Size: 1.31 KB
Versions: 3
Compression:
Stored size: 1.31 KB
Contents
# frozen_string_literal: true module Heartml class BridgetownRenderer < Bridgetown::Builder # Called when a `Bridgetown::Component` includes `Heartml`, so we can bypass Bridgetown's # normal component template handling def self.component_overrides(klass) klass.define_method(:template) { call } end 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.call end end end end Bridgetown.initializer :heartml do |config| Heartml.module_eval do def render_in(view_context, rendering_mode: :string, &block) self.rendering_mode = rendering_mode super(view_context, &block) end end Heartml::ClassMethods.module_eval do def component_template_path = heart_module 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
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
heartml-1.0.0.beta18 | lib/heartml/bridgetown_renderer.rb |
heartml-1.0.0.beta17 | lib/heartml/bridgetown_renderer.rb |
heartml-1.0.0.beta16 | lib/heartml/bridgetown_renderer.rb |