Sha256: ed3b2481d4b38c8df51fa54ae28f3bbec5e770d89541c0a5250283c09a4c1082

Contents?: true

Size: 1.15 KB

Versions: 5

Compression:

Stored size: 1.15 KB

Contents

# Load gem
require 'slim'

module SafeTemplate
  def render(*)
    super.html_safe
  end
end

class Slim::Template
  include SafeTemplate

  def precompiled_preamble(locals)
    "__in_slim_template = true\n" << super
  end
end

module Middleman
  module Renderers
    # Slim renderer
    module Slim
      # Setup extension
      class << self
        # Once registered
        def registered(app)
          app.before_configuration do
            template_extensions slim: :html
          end

          # Setup Slim options to work with partials
          ::Slim::Engine.set_options(
            buffer: '@_out_buf',
            use_html_safe: true,
            generator: ::Temple::Generators::RailsOutputBuffer,
            disable_escape: true
          )

          app.after_configuration do
            context_hack = {
              context: self
            }

            ::Slim::Embedded::SassEngine.disable_option_validator!
            %w(sass scss markdown).each do |engine|
              ::Slim::Embedded.options[engine.to_sym] = context_hack
            end
          end
        end

        alias_method :included, :registered
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
middleman-core-3.4.1 lib/middleman-core/renderers/slim.rb
middleman-core-3.4.0 lib/middleman-core/renderers/slim.rb
middleman-core-3.3.12 lib/middleman-core/renderers/slim.rb
middleman-core-3.3.11 lib/middleman-core/renderers/slim.rb
middleman-core-3.3.10 lib/middleman-core/renderers/slim.rb