middleman/middleman-core/lib/middleman-core/renderers/slim.rb

49 lines
1 KiB
Ruby
Raw Normal View History

# Load gem
require 'slim'
2014-02-19 03:30:29 +01:00
module SafeTemplate
def render(*)
super.html_safe
end
end
class ::Slim::Template
2014-02-19 03:30:29 +01:00
include SafeTemplate
def initialize(file, line, opts, &block)
if opts.key?(:context)
::Slim::Embedded::SassEngine.disable_option_validator!
%w(sass scss markdown).each do |engine|
(::Slim::Embedded.options[engine.to_sym] ||= {})[:context] = opts[:context]
end
end
super
end
2014-02-19 03:30:29 +01:00
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
2015-04-26 22:22:58 +02:00
::Slim::Engine.disable_option_validator!
2014-12-23 23:54:21 +01:00
::Slim::Engine.set_options(
buffer: '@_out_buf',
use_html_safe: true,
generator: ::Temple::Generators::RailsOutputBuffer,
disable_escape: true
)
end
end
end
end