2009-07-30 9 views
2

にHAMLにオプションを渡す:私は基本的な次のように、.htmlに1つの.hamlファイルの変換を行うには、コマンドラインからHAMLを使用しているコマンドライン

> haml input.haml output.html 

事はこれが発生し、あります結果として得られるHTMLの属性を一重引用符で囲みます。では、コマンドラインから:attr_wrapper => '"'オプションを渡す方法は?

また、グローバルに:attr_wrapperをダブルクォートに設定することはできますか?

答えて

4

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

これは私が必要なものを行うには、専用のオプションが追加されます。

デフォルトでシングルクォートを使用する理由はわかりません。二重引用符はより合理的なデフォルトを作るでしょう、私は思ったでしょう。言いましたが、彼らは完全に有効です。

私はpatchとしてこの更新プログラムを提出し、それがバージョン2.4

+0

彼らは以下の侵入またはそのような何かだからハンプトンカトリンがちょうど単一引用符を好きに含まれます。他の誰もがあなたに同意します。 – Chuck

1

標準のコマンドラインクライアントにそのオプションを指定する方法はわかりません。あなたは、グローバルHAML 2.2.2のためだ

:attr_wrapper => '"', 

を読むために(HAML 2.2.2で)HAML/engine.rbライン73を変更して、デフォルトにパッチを適用することができます。以前のバージョンとは異なります。まだそれらのうちの1つを使用している場合は、 ":attr_wrapper =>"のテキスト検索だけで正しい行を見つけることができます。

4

私はそれを引数として渡す方法を知っていませんが、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を開けます引数なし)、レンダリングされた出力を2番目の引数(または与えられていないSTDOUT)に渡します。私はライン302〜でHAML/exec.rbに以下を追加してやってしまったもの

関連する問題