0

JRuby を使用してコンパスを使用して sass css をコンパイルしています

コンパスを使用してscssファイルをコンパイルする方法を知っています:

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::Compiler ソースに飛び込んできたファイルではなく文字列にあるコンパス ソースをコンパイルしたいのですが、ファイルの代わりに scss 文字列をコンパイルする方法は見たことがありません。

注: コンパスの代わりにSASSコンパイラを直接使用すると、scss文字列をコンパイルできます

engine = Sass::Engine.new(source,:syntax => :scss)
result = engine.render
4

1 に答える 1

0

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

したがって、コンパスを使用して文字列をコンパイルする方法は、生の Sass を使用してコンパイルする場合と同じです。

Sass::Engine.new(scssString,{:syntax => :scss,
                             :compass => {:css_dir => 'stylesheets',:js_dir => 'javascripts',:images_dir => 'images'}})
result = engine.render
于 2013-09-23T08:50:40.463 に答える