[英]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.