Sha256: fa57214c45cba39bf4e57a15e240e900dae2d15f4e3fe50ce259bc7aa475f1d4

Contents?: true

Size: 1.04 KB

Versions: 2

Compression:

Stored size: 1.04 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
    class Slim < ::Middleman::Extension
      # Setup extension
      def initialize(_app, _options={}, &_block)
        super

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

      def after_configuration
        context_hack = {
          context: app.template_context_class.new(app)
        }

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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
middleman-core-4.0.0.beta.2 lib/middleman-core/renderers/slim.rb
middleman-core-4.0.0.beta.1 lib/middleman-core/renderers/slim.rb