質問

次のように、コマンドラインからHamlを使用して、1つの.hamlファイルから.htmlへの基本的な変換を実行しています:

> haml input.haml output.html

つまり、結果のHTMLの属性を単一引用符で囲みます。 :attr_wrapper =>を渡す方法コマンドラインからの「"」オプション?

別の方法として、:attr_wrapper を二重引用符にグローバルに設定することはできますか?

役に立ちましたか?

解決 2

私がやったことは、〜行302で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はプログラムで簡単に使用できます:

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)に渡します。

標準のコマンドラインクライアントにそのオプションを指定する方法がわかりません。 haml / engine.rbの73行目(Haml 2.2.2)を変更して読むことで、デフォルトにグローバルにパッチを適用できます

:attr_wrapper => '"',

これはHaml 2.2.2向けです。以前のバージョンでは異なります。まだこれらのいずれかを使用している場合は、":attr_wrapper =>"のテキスト検索を実行できます。正しい行が見つかります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top