class Nanoc::Filters::Sass

@api private

Public Class Methods

item_filename_map_for_site(site, items) click to toggle source
# File lib/nanoc/filters/sass.rb, line 21
def self.item_filename_map_for_site(site, items)
  @item_filename_map ||= {}
  @item_filename_map[site] ||=
    {}.tap do |map|
      items.each do |item|
        if item.raw_filename
          path = Pathname.new(item.raw_filename).realpath.to_s
          map[path] = item
        end
      end
    end
end

Public Instance Methods

imported_filename_to_item(filename) click to toggle source
# File lib/nanoc/filters/sass.rb, line 34
def imported_filename_to_item(filename)
  realpath = Pathname.new(filename).realpath.to_s

  map = self.class.item_filename_map_for_site(@site, @items)
  map[realpath]
end
run(content, params = {}) click to toggle source

Runs the content through [Sass](sass-lang.com/). Parameters passed to this filter will be passed on to Sass.

@param [String] content The content to filter

@return [String] The filtered content

# File lib/nanoc/filters/sass.rb, line 12
def run(content, params = {})
  options = params.merge(
    nanoc_current_filter: self,
    filename: @item && @item.raw_filename,
  )
  engine = ::Sass::Engine.new(content, options)
  engine.render
end