使用Sass脚本可以检索当前正在编译的文件的名称

时间:2013-11-20 15:06:33

标签: ruby sass

我正在使用Sass脚本编写一些自定义函数,需要获取正在编译的文件的名称。

最终的结果是根据正在编译的文件的文件名生成类名。是否可以使用Sass脚本获取该文件名?我可以使用Dir.getwd来获取工作目录,但似乎无法获取当前文件。

1 个答案:

答案 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"; }