Sha256: 07367b85b985a86513e6fb8beb8fd55aa05de8865913a4d2d34cb3b1899d3420

Contents?: true

Size: 1.19 KB

Versions: 24

Compression:

Stored size: 1.19 KB

Contents

# frozen_string_literal: true

module Nanoc::Filters
  # @api private
  class Sass < Nanoc::Filter
    identifier :sass

    requires 'sass', 'nanoc/filters/sass/sass_filesystem_importer'

    # Runs the content through [Sass](http://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
    def run(content, params = {})
      options = params.merge(
        nanoc_current_filter: self,
        filename: @item&.raw_filename,
      )
      engine = ::Sass::Engine.new(content, options)
      engine.render
    end

    def self.item_filename_map_for_config(config, items)
      @item_filename_map ||= {}
      @item_filename_map[config] ||=
        {}.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

    def imported_filename_to_item(filename)
      realpath = Pathname.new(filename).realpath.to_s

      map = self.class.item_filename_map_for_config(@config, @items)
      map[realpath]
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
nanoc-4.9.9 lib/nanoc/filters/sass.rb
nanoc-4.9.8 lib/nanoc/filters/sass.rb
nanoc-4.9.7 lib/nanoc/filters/sass.rb
nanoc-4.9.6 lib/nanoc/filters/sass.rb
nanoc-4.9.5 lib/nanoc/filters/sass.rb
nanoc-4.9.4 lib/nanoc/filters/sass.rb
nanoc-4.9.3 lib/nanoc/filters/sass.rb
nanoc-4.9.2 lib/nanoc/filters/sass.rb
nanoc-4.9.1 lib/nanoc/filters/sass.rb
nanoc-4.9.0 lib/nanoc/filters/sass.rb
nanoc-4.8.19 lib/nanoc/filters/sass.rb
nanoc-4.8.18 lib/nanoc/filters/sass.rb
nanoc-4.8.17 lib/nanoc/filters/sass.rb
nanoc-4.8.16 lib/nanoc/filters/sass.rb
nanoc-4.8.15 lib/nanoc/filters/sass.rb
nanoc-4.8.14 lib/nanoc/filters/sass.rb
nanoc-4.8.13 lib/nanoc/filters/sass.rb
nanoc-4.8.12 lib/nanoc/filters/sass.rb
nanoc-4.8.11 lib/nanoc/filters/sass.rb
nanoc-4.8.10 lib/nanoc/filters/sass.rb