【发布时间】:2012-11-15 12:22:38
【问题描述】:
在我的 nanoc 网站中,我想使用 SCSS 指定我的样式:
p {
em {
color: red;
}
}
...不是 SASS:
p
em
color: red
但是如果我尝试使用 SCSS,我会从 SASS 过滤器中得到一个编译错误。如何让它使用 SCSS?
【问题讨论】:
在我的 nanoc 网站中,我想使用 SCSS 指定我的样式:
p {
em {
color: red;
}
}
...不是 SASS:
p
em
color: red
但是如果我尝试使用 SCSS,我会从 SASS 过滤器中得到一个编译错误。如何让它使用 SCSS?
【问题讨论】:
事实证明这很简单:
filter :sass, syntax: :scss
nanoc 中的过滤器似乎遵循这样的模式,即采用给定的任何选项并将它们传递给实际执行工作的任何对象。例如,Nanoc::Filters::Sass 在其 run 方法中执行此操作:
def run(content, params={})
options = params.dup
# supply default options, etc...
engine = ::Sass::Engine.new(content, options)
# ...
engine.render
end
Sass::Engine 又具有:syntax 作为available option。
【讨论】:
config.rb 文件中的所有选项:Compass.add_project_configuration('config.rb'),然后在规则中您只需将其全部传递:filter :sass, Compass.sass_engine_options
:syntax => :scss(直到昨天我才注意到 Ruby 1.9.2 引入了新的哈希语法)