Próbuję renderować łącze poprzedzone ikoną. Używam silnika szablonowego wraz z Bootstrap CSS.Jak renderować HTML wewnątrz szablonów Slim
Zazwyczaj można to zrobić w następujący sposób:
<a href="#"><i class="icon-user"></i> My Profile</a>
Według dokumentacji Slima, możemy użyć ==
uczynić bez ucieczki HTML. Tak więc, tłumacząc to Slim, próbowałem następujące zmiany:
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
Wszystkie warianty świadczonych <a href="https://stackoverflow.com/users/1"><i class="icon-user"></i> My Profile</a>
ucieczce tag i
.
Jak mogę zatrzymać Slim lub Rails przed ucieczką html?
(Rails 3.2 z Slim 1.2.1)
dodając, że jeśli mają wartość atrybutu, który powinien być renderowany jako bezpiecznego HTML, użyj dwukrotnie „=”: 'rozpiętość danych ikona == icon' (gdzie ostatnia ikona jest zmienną zawierającą ...;) – elado
@elado: czy szczupła dokumentacja nie jest dokładnie odwrotna: https://github.com/slim-template/slim#output-without-html-escaping-? – MoMolog
'==' nie ucieka, '=' robi. Możesz użyć 'tag attr = variable', aby zrenderować zmienną unikniętą. jeśli nie chcesz tego uciec, użyj 'tag attr == variable'. Na przykład, aby renderować encję html jako atrybut poprawnie, nie powinieneś tego unikać: ruby: 'icon =" { "' slim: 'span.icon data-icon == icon' – elado