【问题标题】:Compass compile using string inputCompass 使用字符串输入编译
【发布时间】:2013-09-28 00:21:57
【问题描述】:

我正在使用 JRuby 使用 compass 来编译 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

【问题讨论】:

    标签: sass compass-sass


    【解决方案1】:

    在 Compass::Compiler ruby​​ 类型中深入挖掘后,我发现它毕竟以简单的方式委托给 Sass::Engine:

    编译函数类似于:

    def compile(sass_filename, css_filename)
        ...
        engine(sass_filename, css_filename).render
        ...
    end
    

    调用engine函数:

    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
    

    【讨论】:

      猜你喜欢
      • 2011-12-20
      • 1970-01-01
      • 2015-01-16
      • 1970-01-01
      • 2012-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多