簡體   English   中英

在命令行上將選項傳遞給Haml

[英]Passing options to Haml on the command line

我從命令行使用Haml來將一個.haml文件基本轉換為.html,如下所示:

> haml input.haml output.html

事實上,這會在生成的HTML中圍繞屬性生成單引號。 那么如何:attr_wrapper => '"'傳入:attr_wrapper => '"'選項?

或者,我可以全局設置:attr_wrapper為雙引號嗎?

我不知道如何將它作為參數傳遞,但HAML很容易以編程方式使用:

require 'haml'

template = ARGV.length > 0 ? File.read(ARGV.shift) : STDIN.read
haml_engine = Haml::Engine.new(template, :attr_wrapper => '"')
file = ARGV.length > 0 ? File.open(ARGV.shift, 'w') : STDOUT
file.write(haml_engine.render)
file.close

沒什么好看的,但它會打開給定的第一個參數(如果沒有給出參數,則打開STDIN),並將渲染輸出傳遞給第二個參數(或未給定的STDOUT)。

我最終做的是在第302行將hame / exec.rb添加到haml / exec.rb中

    opts.on('-q', '--double-quote-attribs',
            'Set attribute wrapper to double-quotes (default is single).') do
      @options[:for_engine][:attr_wrapper] = '"'
    end

這增加了一個專門的選項來做我需要的。

我不太清楚默認使用單引號的理由是什么; 我會想到,雙引號會產生更合理的違約。 話雖如此,它們完全有效。

我將此更新作為補丁提交,它將包含在2.4版本中

我不知道為標准命令行客戶端指定該選項的方法。 您可以通過更改haml / engine.rb第73行(在Haml 2.2.2中)來全局修補默認值

:attr_wrapper => '"',

那是Haml 2.2.2。 它在早期版本中有所不同。 如果你仍在使用其中一個,你可以只搜索“:attr_wrapper =>”,它會找到正確的行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM