1

これが私のHamlです:

%a{:href => "/settings", "data-icon" => "⚙"}

どの出力:

<a data-icon='&amp;#9881;' href='/settings'>Settings</a>

出力したい:

<a data-icon='&#9881;' href='/settings'>Settings</a>

だから私はアンパサンドをエスケープしようとしました:

%a{:href => "/settings", "data-icon" => "\&#9881;"}

しかし、エスケープは行の最初の文字に対してのみ機能するようです。

また、さまざまな補間/エスケープ方法を試しましたが、成功しませんでした:

"#{"&#9881;"}"

プレーンな html ( <a href="/settings" data-icon="&#9881">Settings</a>) を使用することは、私が解決策とは考えていない応急処置です。data-iconプログラムで設定したい場合はどうすればよいですか?

別のオプションは次のとおりです。

%a{:href => "#", "data-icon" => "⚙"} Settings

しかし、 PUAキャラクターを使用したい場合はどうすればよいでしょうか? また、マークアップでその文字が何であるかを判断するのが非常に難しくなります。

デモ

4

1 に答える 1

1

escape_attrsオプションfalseまたはに設定する必要があります:once

$ haml --no-escape-attrs
%a{:href => "/settings", "data-icon" => "&#9881;"}

出力:

<a data-icon='&#9881;' href='/settings'></a>

--no-escape-attrsコマンドラインからescape_attrsオプションを設定します。その他の場合のオプションの設定方法については、ドキュメントfalseを参照してください。

(codepen.io では Haml オプションを指定できるようには見えないため、そこでデモを提供することはできません)。

于 2012-11-28T12:32:51.867 に答える