使用方法Sass.compile_file
时,是否可以将变量注入Sass范围?
目前我将值传递给custom:
参数,创建自定义sass函数,然后从Sass文件/脚本中调用它。这非常尴尬,因为我必须创建从函数返回的相应类型的对象,即Sass::Script::String
,而不是String
。
答案 0 :(得分:0)
我认为根据Is there a way I can overwrite LESS variable with LESS compiler in PHP?,您可以自行打开文件并通过(Sass.compile
)[http://sass-lang.com/documentation/Sass.html]解析其内容,而不是直接使用Sass.compile_file
。
使用compile.rb
:
#!/usr/bin/ruby
require 'sass'
data = File.read("./colors.scss")
puts Sass::compile('$color: white;' + data)
和colors.scss
:
$color: blue !default;
p {
color: $color;
}
运行./compile.rb
输出:
p {
color: white; }
根据the docs,您应该使用Sass::Engine
:
在Ruby代码中使用Sass非常简单。安装Sass宝石后, 您可以通过运行require“sass”并使用Sass :: Engine来使用它。
#!/usr/bin/ruby
require 'sass'
template = File.read('./colors.scss')
sass_engine = Sass::Engine.new("$color: white;\n" + template, :syntax => :scss)
output = sass_engine.render
puts output