我正在使用Sass脚本编写一些自定义函数,需要获取正在编译的文件的名称。
最终的结果是根据正在编译的文件的文件名生成类名。是否可以使用Sass脚本获取该文件名?我可以使用Dir.getwd
来获取工作目录,但似乎无法获取当前文件。
答案 0 :(得分:1)
在使用Sass处理文件之前,您可以通过ERB运行文件作为预处理步骤。这允许您在Sass源中使用Ruby的内置全局变量__FILE__
,它将输出当前文件的名称,例如
/* style.scss */
div {
p:after {
content: "Hello, this is <%= __FILE__ %>";
}
}
例如,您可以使用Tilt Gem来处理两个处理步骤:
require 'erb'
require 'sass'
require 'tilt'
erb = Tilt::ERBTemplate.new('style.scss')
scss = Tilt::ScssTemplate.new{ erb.render }
result = scss.render
上面scss文件的输出是:
div p:after {
content: "Hello, this is style.scss"; }