Sha256: bf1d004a734f569ec3e6908bfc41877239f64c813ff3f40f92c0229e598fc42c
Contents?: true
Size: 1.35 KB
Versions: 12
Compression:
Stored size: 1.35 KB
Contents
require 'sass-css-importer' module Sass::Script::Functions def asset(url) assert_type url, :String Sass::Script::Value::String.new("url(\"#{asset_uri}/#{url.value}\")") end def asset_uri options[:locals][:asset_uri] || Hamloft.asset_uri end def asset_data(url) assert_type url, :String theme = options[:locals][:theme] asset_path = "dist/themes/#{theme}/#{url.value}" asset_contents = File.open(asset_path).read base64_string = Base64.strict_encode64(asset_contents) extension = File.extname(url.value)[1..-1] mime_type = Mime::Type.lookup_by_extension(extension).to_s data_uri = "data:#{mime_type};base64,#{base64_string}" Sass::Script::Value::String.new("url(#{data_uri})") end declare(:asset_data, [:url]) end module MagLove module Tilt class ScssTemplate < ::Tilt::SassTemplate self.default_mime_type = 'text/css' def prepare end def evaluate(scope, locals, &block) prepared_data = "@base: \"#{locals[:base_path].sub('src/', '../../')}\";\n#{data}" engine = Sass::Engine.new(prepared_data, sass_options.merge({ locals: locals })) @output ||= engine.render end private def sass_options options.merge(filename: eval_file, line: line, syntax: :scss) end end end end Tilt.mappings["scss"] = [MagLove::Tilt::ScssTemplate]
Version data entries
12 entries across 12 versions & 1 rubygems