2

HamlでIcomoonアイコンフォントを使用しようとしていますが、をエスケープする方法が見つからないため、の代わりに&そのまま使用できます。&&

Icomoonフォントを使用すると、data-icon=""属性を持つHTMLエンティティを使用できます。HTMLでバターのようにスムーズに動作し、単純なHTMLリンクを実行するだけでHamlファイルでも動作します。

しかし、私はHamlを学んでいるので、ここにいる誰かがこれにアプローチするための最良の方法を推奨したいかどうかを確認したいと思いました。

これが何が起こるかのサンプルです。

これはオリジナルのHamlです:

%a(href='/posts' data-icon="&#x0026" aria-hidden='true')

コンパイル方法は次のとおりです。

<a aria-hidden='true' data-icon='&amp;#x0026' href='/posts'>

アイコンフォントを機能させるには、次のようにコンパイルする必要があります。

<a aria-hidden='true' data-icon='&#x0026' href='/posts'>

これが、アンプによってアイコンがどのようにレンダリングされるかを確認できるコードペンです。追加:http ://codepen.io/dandenney/pen/3/6

4

3 に答える 3

3

私はこの質問を完了するためのトップポスターの方法が好きではありませんでした。これまでのところ、私が見つけた最善の方法は次のことです。

- foo = "&#x0026".html_safe
%a(href='/posts' data-icon=foo aria-hidden='true')

私はこれに完全には満足していませんが、どこでもHTMLエスケープをオフにするよりも、Railsアプリの方が良いと思います。

于 2013-03-14T10:02:58.130 に答える
2

:escape_attrsこのオプションを使用して、属性内のHTMLセンシティブ文字をエスケープするかどうかを制御できます。

require 'haml'

haml = "%a(href='/posts' data-icon=\"&#x0026\" aria-hidden='true')"

puts Haml::Engine.new(haml, :escape_attrs => false).to_html

出力:

<a aria-hidden='true' data-icon='&#x0026' href='/posts'></a>

これは、Hamlテンプレートのすべての属性に適用されることに注意してください。

于 2012-06-27T02:38:51.967 に答える
1

私の意見では、一般的に文字をエスケープする機能を無効にするという考えは好きではありません。たぶん、アプリケーションのある時点でリレーを使用します。

私にとってそれを行うための最良の方法は次のとおりです。

%a{ href: '/', 'data-icon' => "&#10000;".html_safe }
于 2014-06-08T11:58:55.800 に答える