2012-11-27 67 views
1

這是我Haml的:逃生屬性值/阻止HTML清理在Haml的

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

,輸出:

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

我想輸出:

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

所以我嘗試escaping&符:

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

但似乎escapes只適用於一行的第一個字符。

我也試着插不同的方法/沒有成功逃脫:

"#{"&#9881;"}" 

使用純HTML(<a href="/settings" data-icon="&#9881">Settings</a>)是,我不認爲溶液中的權宜之計。如果我想以編程方式設置data-icon怎麼辦?

另一種選擇是:

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

但是如果我想使用PUA字符?這也使得很難說出標記中的角色是什麼。

Demo

+0

此問題是http://stackoverflow.com/questions/11218025/how-could-i-escape-a-in-haml-so-that-it-compiles-to-instead-of-amp -haml – Robin

回答

1

您需要的escape_attrs option設置爲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。有關如何在其他情況下設置選項的信息,請參閱the docs

(它看起來不像codepen.io讓你指定Haml選項,所以我不能在那裏提供一個演示)。