我正在尝试使用带有Haml的Icomoon图标字体,似乎无法找到逃脱&
的方法,因此它只保留&
而不是&
。
Icomoon字体允许您使用带有data-icon =“”属性的HTML实体。如果我只是做一个直接的HTML链接,那么在HTML中甚至在Haml文件中也能很好地工作。
然而,因为我正在学习Haml,我想我会看到这里是否有人想推荐最好的方法来解决这个问题。
以下是发生的事情的样本。
这是最初的Haml:
%a(href='/posts' data-icon="&" aria-hidden='true')
这是它的编译方式:
<a aria-hidden='true' data-icon='&#x0026' href='/posts'>
这是编译图标字体的工作原理:
<a aria-hidden='true' data-icon='&' href='/posts'>
这里有一个codepen,你可以看到图标由放大器呈现的方式;另外:http://codepen.io/dandenney/pen/3/6
答案 0 :(得分:3)
我不喜欢顶级海报完成这个问题的方式。到目前为止,我发现最好的方法是:
- foo = "&".html_safe
%a(href='/posts' data-icon=foo aria-hidden='true')
我对此并不满意,但认为对于rails应用程序更好,而不是在任何地方关闭HTML转发。
答案 1 :(得分:1)
您可以使用:escape_attrs
option来控制属性中的HTML敏感字符是否已转义:
require 'haml'
haml = "%a(href='/posts' data-icon=\"&\" aria-hidden='true')"
puts Haml::Engine.new(haml, :escape_attrs => false).to_html
输出:
<a aria-hidden='true' data-icon='&' href='/posts'></a>
请注意,这将适用于Haml模板中的所有属性。
答案 2 :(得分:1)
在我看来,我不喜欢通常禁用该功能以逃避角色的想法。也许您在应用程序的某个时刻使用继电器。
对我来说,最好的办法是:
%a{ href: '/', 'data-icon' => "✐".html_safe }