将Sass变量设置为Sass.compile_file

时间:2015-04-29 08:32:36

标签: ruby sass

使用方法Sass.compile_file时,是否可以将变量注入Sass范围?

目前我将值传递给custom:参数,创建自定义sass函数,然后从Sass文件/脚本中调用它。这非常尴尬,因为我必须创建从函数返回的相应类型的对象,即Sass::Script::String,而不是String

1 个答案:

答案 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