Created
July 4, 2013 16:01
-
-
Save cu39/5928816 to your computer and use it in GitHub Desktop.
Sass::Engine#render_with_sourcemap
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# coding: utf-8 | |
require 'sass' # 3.3.0.alpha136 | |
abs_dir = File.expand_path '..', __FILE__ | |
sass_path_rel = 'views/application.sass' | |
sass_path_abs = File.join abs_dir, sass_path_rel | |
css_path_rel = 'css/application.css' | |
css_path_abs = File.join abs_dir, css_path_rel | |
css_uri_rel = css_path_rel | |
css_uri_abs = '/' + css_path_rel | |
sourcemap_uri_rel = 'css/application.css.map' | |
sourcemap_uri_abs = '/' + sourcemap_uri_rel | |
# 以下コメントは sass 3.3.0.alpha.136 の挙動にもとづく | |
sass_opts = { | |
# Sass::Engine コンストラクタに渡して *.sass 実ファイルの位置を教えてる | |
filename: sass_path_abs, | |
} | |
e = Sass::Engine.new File.read(sass_path_rel), sass_opts | |
# css ファイル内には sourcemap のパスが書かれる | |
# この引数で指定した値は *.css の sourceMappingURL に指定される | |
css, map = e.render_with_sourcemap sourcemap_uri_abs | |
puts '---- CSS -----------' | |
puts css | |
puts '---- Source Map ----' | |
# ソースマップ JSON 内には sass へのパスと css へのパスが書かれる | |
json_opts = { | |
# この値として与えられたファイル位置から sass_opts[:opts] までの相対パスが | |
# ソースマップ JSON の "sources" キーに対応する値に設定される | |
# メソッドの引数で与えてるのに再度指定しないといけない? | |
sourcemap_path: sourcemap_uri_abs, | |
# この値は render_with_sourcemap の引数(=ソースマップの位置)からの | |
# 相対パスに変換された上で | |
# ソースマップ JSON の "file" キーに対応する値となる | |
css_path: css_uri_abs, | |
} | |
puts map.to_json json_opts |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment