Встроенный тег в haml
В html вы можете сделать что-то вроде этого
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eget
aliquet odio. Fusce id quam eu augue sollicitudin imperdiet eu ac eros.
<em>Etiam nec nisi lorem</em>, ac venenatis ipsum. In sollicitudin,
lectus eget varius tincidunt, felis sapien porta eros, non
pellentesque dui quam vitae tellus.
</p>
Хорошо, потому что абзац текста по-прежнему выглядит как параграф в разметке. В haml это выглядит как
%p
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eget
aliquet odio. Fusce id quam eu augue sollicitudin imperdiet eu ac eros.
%em Etiam nec nisi lorem
, ac venenatis ipsum. In sollicitudin,
lectus eget varius tincidunt, felis sapien porta eros, non
pellentesque dui quam vitae tellus.
Есть ли способ полностью встроить тег в haml?
Ответы
Ответ 1
Haml выделяется для структурной разметки, но на самом деле не предназначен для встроенной разметки. Читайте: Haml Sucks для контента. Просто поместите свои встроенные теги в HTML:
.content
%p
Lorem ipsum <em>dolor</em> sit amet.
Или используйте filter:
.content
:markdown
Lorem ipsum *dolor* sit amet.
Ответ 2
Я знаю, что это старо. Но подумал, что я отправлю это на случай, если кто-нибудь приземлится здесь. Вы также можете делать такие вещи в haml (И, возможно, больше того, что искали OP).
%p Here is some text I want to #{content_tag(:em, "emphasize!")}, and here the word #{content_tag(:strong, "BOLD")} is in bold. and #{link_to("click here", "url")} for a link.
Полезно для ситуаций, когда это делается на нескольких строках, добавляет пробелы, которые вы не хотите
И.Е. Когда у вас есть ссылка в конце предложения, и вы не хотите, чтобы это глупое пространство между ссылкой и периодом. (или, как в примере OP, между запятой и запятой будет пробел.
Просто не увлекайтесь, как в примере:)
Ответ 3
Вы можете встроить HTML в любой HAML, выполняющий
%p!= "Lorem ipsum <em>dolor</em> sit amet"
Оператор!= означает, что независимо от того, вернет ли его правая часть, будет выведено.
Ответ 4
Как гибрид этих приятных ответов другими, я думаю, вы можете определить метод Помощника в своем application_helper.rb
для некоторых встроенных разметки, которые вы часто использовали. Вам не нужно смешивать HTML с HAML, и вам не нужно много вводить.
В вашем помощнике;
def em(text)
content_tag(:em, text)
end
#def em(text)
# "<em>#{text}</em>".html_safe
#end
В вашем haml;
%p
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eget
aliquet odio. Fusce id quam eu augue sollicitudin imperdiet eu ac eros.
#{em 'Etiam nec nisi lorem'}, ac venenatis ipsum. In sollicitudin,
lectus eget varius tincidunt, felis sapien porta eros, non
pellentesque dui quam vitae tellus.
Ответ 5
Всё об отстуке:
%p
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eget aliquet odio. Fusce id quam eu augue sollicitudin imperdiet eu ac eros.
%em
Etiam nec nisi lorem, ac venenatis ipsum. In sollicitudin, lectus eget varius tincidunt, felis sapien porta eros, non pellentesque dui quam vitae tellus.