Sha256: 41691e0ae84d9be73f08385df5655d7769fe56df1c742892420f41b355cbd203

Contents?: true

Size: 1.18 KB

Versions: 4

Compression:

Stored size: 1.18 KB

Contents

# frozen_string_literal: true

module Bridgetown
  module Site::Renderable
    # Render the site to the destination.
    #
    # Returns nothing.
    def render
      payload = site_payload

      Bridgetown::Hooks.trigger :site, :pre_render, self, payload

      execute_inline_ruby_for_layouts!

      render_docs(payload)
      render_pages(payload)

      Bridgetown::Hooks.trigger :site, :post_render, self, payload
    end

    def execute_inline_ruby_for_layouts!
      return unless config.should_execute_inline_ruby?

      layouts.each_value do |layout|
        Bridgetown::Utils::RubyExec.search_data_for_ruby_code(layout, self)
      end
    end

    def render_docs(payload)
      collections.each_value do |collection|
        collection.docs.each do |document|
          render_regenerated(document, payload)
        end
      end
    end

    def render_pages(payload)
      pages.each do |page|
        render_regenerated(page, payload)
      end
    end

    def render_regenerated(document, payload)
      return unless regenerator.regenerate?(document)

      document.output = Bridgetown::Renderer.new(self, document, payload).run
      document.trigger_hooks(:post_render)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
bridgetown-core-0.15.0.beta2 lib/bridgetown-core/concerns/site/renderable.rb
bridgetown-core-0.15.0.beta1 lib/bridgetown-core/concerns/site/renderable.rb
bridgetown-core-0.14.1 lib/bridgetown-core/concerns/site/renderable.rb
bridgetown-core-0.14.0 lib/bridgetown-core/concerns/site/renderable.rb