这是我的Haml:
%a{:href => "/settings", "data-icon" => "⚙"}
哪个输出:
<a data-icon='&#9881;' href='/settings'>Settings</a>
我想输出:
<a data-icon='⚙' href='/settings'>Settings</a>
所以我尝试了escaping&符号:
%a{:href => "/settings", "data-icon" => "\⚙"}
但似乎只能逃脱一条线的第一个角色。
我也尝试过不同的插值/转义方法但没有成功:
"#{"⚙"}"
使用普通的html(<a href="/settings" data-icon="⚙">Settings</a>
)是一种权宜之计,我不认为是一种解决方案。如果我想以编程方式设置data-icon
该怎么办?
另一种选择是:
%a{:href => "#", "data-icon" => "⚙"} Settings
但是如果我想使用PUA字符怎么办?它还使得更难以确定标记中的字符是什么。
答案 0 :(得分:1)
您需要将escape_attrs
option设置为false
或:once
。
$ haml --no-escape-attrs
%a{:href => "/settings", "data-icon" => "⚙"}
输出:
<a data-icon='⚙' href='/settings'></a>
--no-escape-attrs
从命令行将escape_attrs
选项设置为false
。有关如何在其他情况下设置选项的信息,请参阅the docs。
(它看起来不像codepen.io,你可以指定Haml选项,所以我不能在那里提供演示)。