Class: Middleman::Renderers::Sass

Inherits:
Extension
  • Object
show all
Defined in:
lib/middleman-core/renderers/sass.rb

Overview

Sass renderer

Defined Under Namespace

Classes: SassPlusCSSFilenameTemplate, ScssPlusCSSFilenameTemplate

Constant Summary

Constants included from Contracts

Contracts::PATH_MATCHER

Instance Attribute Summary

Attributes inherited from Extension

#app, #options

Instance Method Summary collapse

Methods inherited from Extension

activated_extension, #add_exposed_to_context, #after_build, #after_configuration, after_extension_activated, #after_extension_activated, #before_build, #before_configuration, clear_after_extension_callbacks, config, expose_to_application, expose_to_config, expose_to_template, helpers, #manipulate_resource_list, option, #ready, resources

Methods included from Contracts

#Contract

Constructor Details

#initialize(app, options = {}, &block) ⇒ Sass

Setup extension



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/middleman-core/renderers/sass.rb', line 8

def initialize(app, options={}, &block)
  super

  logger.info '== Preferring use of LibSass' if defined?(::SassC)

  app.files.ignore :sass_cache, :source, /(^|\/)\.sass-cache\//

  opts = { output_style: :nested }
  opts[:line_comments] = false if ENV['TEST']

  # Default sass options
  app.config.define_setting :sass, opts, 'Sass engine options'

  app.config.define_setting :sass_assets_paths, [], 'Paths to extra SASS/SCSS files'
  app.config.define_setting :sass_source_maps, app.development?, 'Whether to inline sourcemap into Sass'

  # Tell Tilt to use it as well (for inline sass blocks)
  ::Tilt.register 'sass', SassPlusCSSFilenameTemplate
  ::Tilt.prefer(SassPlusCSSFilenameTemplate)

  # Tell Tilt to use it as well (for inline scss blocks)
  ::Tilt.register 'scss', ScssPlusCSSFilenameTemplate
  ::Tilt.prefer(ScssPlusCSSFilenameTemplate)

  require 'middleman-core/renderers/sass_functions'
end