class Middleman::Renderers::Sass::SassPlusCSSFilenameTemplate
A SassTemplate for Tilt
which outputs debug messages
Public Class Methods
new(*args, &block)
click to toggle source
Calls superclass method
# File lib/middleman-core/renderers/sass.rb, line 32 def initialize(*args, &block) super @context = @options[:context] if @options.key?(:context) end
Public Instance Methods
evaluate(context, _)
click to toggle source
Add exception messaging @param [Class] context @return [String]
# File lib/middleman-core/renderers/sass.rb, line 49 def evaluate(context, _) @context ||= context @engine = ::SassC::Engine.new(data, sass_options) begin @engine.render rescue ::SassC::SyntaxError => e raise e if @context.app.build? exception_to_css(e) end end
exception_to_css(e)
click to toggle source
# File lib/middleman-core/renderers/sass.rb, line 63 def exception_to_css(e) header = "#{e.class}: #{e.message}" <<~END /* #{header.gsub('*/', '*\\/')} Backtrace:\n#{e.backtrace.join("\n").gsub('*/', '*\\/')} */ body:before { white-space: pre; font-family: monospace; content: "#{header.gsub('"', '\"').gsub("\n", '\\A ')}"; } END end
prepare()
click to toggle source
# File lib/middleman-core/renderers/sass.rb, line 44 def prepare; end
sass_options()
click to toggle source
Change Sass
path, for url functions, to the build folder if we’re building @return [Hash]
# File lib/middleman-core/renderers/sass.rb, line 81 def sass_options ctx = @context preexisting_load_paths = begin ::Sass.load_paths rescue [] end more_opts = { load_paths: preexisting_load_paths + ctx.app.config[:sass_assets_paths], filename: eval_file, line: line, syntax: syntax, custom: {}.merge!(options[:custom] || {}).merge!( middleman_context: ctx.app, current_resource: ctx.current_resource ) } if ctx.app.config[:sass_source_maps] || (ctx.app.config[:sass_source_maps].nil? && ctx.app.development?) more_opts[:source_map_file] = '.' more_opts[:source_map_embed] = true more_opts[:source_map_contents] = true end if ctx.is_a?(::Middleman::TemplateContext) && file more_opts[:css_filename] = file.sub(/\.s[ac]ss$/, '') end {}.merge!(options).merge!(more_opts) end
syntax()
click to toggle source
Define the expected syntax for the template @return [Symbol]
# File lib/middleman-core/renderers/sass.rb, line 40 def syntax :sass end