Estoy tratando de renderizar un enlace precedido por un ícono. Estoy usando Slim motor de plantillas junto con Bootstrap CSS.Cómo renderizar HTML dentro de las plantillas Slim
Por lo general, usted puede hacer esto de la siguiente manera:
<a href="#"><i class="icon-user"></i> My Profile</a>
De acuerdo con la documentación de Slim, que podemos utilizar para hacer ==
sin escapar HTML. Por lo tanto, la traducción de este a Delgado, probé las siguientes variaciones:
li== link_to "<i class='icon-user'></i> My Profile", current_user
li== link_to "#{'<i class="icon-user"></i>'.html_safe} My Profile", current_user
li= link_to "#{'<i class="icon-user"></i>'.html_safe} My Profile", current_user
Todas las variaciones prestados <a href="https://stackoverflow.com/users/1"><i class="icon-user"></i> My Profile</a>
escapar de la etiqueta i
.
¿Cómo puedo evitar que Slim o Rails escapen html?
(Rails 3.2 con Slim 1.2.1)
Añadiendo que si usted tiene un valor de atributo que debe ser traducido como html seguro, utilizar el doble "=": 'lapso de datos en iconos == icon' (donde el último ícono es una variable que contiene ...;) – elado
@elado: ¿la delgada documentación no dice exactamente lo contrario: https://github.com/slim-template/slim#output-without-html-escaping-? – MoMolog
'==' no escapa, '=' lo hace. Puede usar 'tag attr = variable' para representar una variable escapada. si no desea escapar, use 'tag attr == variable'. Por ejemplo, para representar correctamente una entidad html como un atributo, no debe escaparse: ruby: 'icon =" { "' slim: 'span.icon data-icon == icon' – elado