我试图使用Icomoon图标字体与Haml的,似乎无法找到一种方式来逃避&
这样它就能保持只是一个&
代替&
。
该Icomoon字体允许您使用HTML实体数据图标=“”属性。 工作顺利,如HTML黄油,甚至在Haml的文件,如果我只是做一个直接的HTML链接。
然而,由于我学习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
您可以使用:escape_attrs
选项来控制属性,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的模板中的所有属性。
我不喜欢在完成这个问题的顶部海报的方式。 到目前为止,我已经找到了最好的办法就是要做到:
- foo = "&".html_safe
%a(href='/posts' data-icon=foo aria-hidden='true')
我不是,这充分高兴,但认为这对轨道更好的应用程序,而不是关闭HTML转义随处可见。
在我看来,我不喜欢这个主意,禁用该功能一般逃脱字符。 也许你在你的就可以申请某些时候使用继电器。
对我来说,做到这一点的最好办法是:
%a{ href: '/', 'data-icon' => "✐".html_safe }
文章来源: How could I escape a & in Haml so that it compiles to & instead of &? (Haml noob)