Sass 使用字符串输入编译Compass
我正在使用JRuby使用compass编译sass css 我知道如何使用compass编译scss文件:Sass 使用字符串输入编译Compass,sass,compass-sass,Sass,Compass Sass,我正在使用JRuby使用compass编译sass css 我知道如何使用compass编译scss文件: compiler = Compass::Compiler.new( # Compass working directory '.', # Input directory 'styles/scss', # Output directory
compiler = Compass::Compiler.new(
# Compass working directory
'.',
# Input directory
'styles/scss',
# Output directory
'styles/css',
# Compass options
{ :style => :scss}
)
compiler.compile('test.scss','test.css')
但我想编译一些compass源代码,这些源代码保存在字符串中,而不是文件中
我一直在钻研Compass::Compiler源代码,但我没有看到任何编译scss字符串而不是文件的方法
注意:
直接使用SASS编译器而不是compass,我可以编译scss字符串
engine = Sass::Engine.new(source,:syntax => :scss)
result = engine.render
在深入研究Compass::Compiler ruby类型之后,我发现它以一种简单的方式委托给Sass::Engine: 编译函数类似于:
def compile(sass_filename, css_filename)
...
engine(sass_filename, css_filename).render
...
end
正在调用引擎功能:
def engine(sass_filename, css_filename)
...
Sass::Engine.new(open(sass_filename).read, opts)
...
end
因此,要使用compass编译字符串,方法与使用原始Sass编译相同:
Sass::Engine.new(scssString,{:syntax => :scss,
:compass => {:css_dir => 'stylesheets',:js_dir => 'javascripts',:images_dir => 'images'}})
result = engine.render