Sha256: 94cfe3151b8e6ab935bbcb3e2b78bafa0c23c884c93e87e105cdf5e36485d00a

Contents?: true

Size: 1.43 KB

Versions: 1

Compression:

Stored size: 1.43 KB

Contents

require 'sass'
require 'jekyll/utils'

module Jekyll
  module Converters
    class Scss < Converter
      safe true
      priority :low

      def matches(ext)
        ext =~ /^\.scss$/i
      end

      def output_ext(ext)
        ".css"
      end

      def jekyll_sass_configuration
        options = @config["sass"] || {}
        unless options["style"].nil?
          options["style"] = options["style"].to_s.gsub(/\A:/, '').to_sym
        end
        options
      end

      def sass_build_configuration_options(overrides)
        Jekyll::Utils.symbolize_hash_keys(
          Jekyll::Utils.deep_merge_hashes(jekyll_sass_configuration, overrides)
        )
      end

      def syntax
        :scss
      end

      def sass_dir
        return "_sass" if jekyll_sass_configuration["sass_dir"].to_s.empty?
        jekyll_sass_configuration["sass_dir"]
      end

      def sass_dir_relative_to_site_source
        # FIXME: Not Windows-safe. Can only change once Jekyll 2.0.0 is out
        Jekyll.sanitized_path(@config["source"], sass_dir)
      end

      def allow_caching?
        !@config["safe"]
      end

      def sass_configs(content = "")
        sass_build_configuration_options({
          "syntax"     => syntax,
          "cache"      => allow_caching?,
          "load_paths" => [sass_dir_relative_to_site_source]
        })
      end

      def convert(content)
        ::Sass.compile(content, sass_configs(content))
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
jekyll-sass-converter-1.0.0 lib/jekyll/converters/scss.rb