Извлечение простого текста из переменной содержимого html в HAML

Я пытаюсь извлечь простой текст из некоторого содержимого HTML в HAML. Например, если у меня есть этот HTML-код в переменной с именем message.content:

Hi, this is a <strong>test</strong> message!

У меня есть строка HAML, как это:

%p= message.content

И я хочу это в качестве вывода:

<p>
  Hi, this is a test message!
</p>

Есть ли какой-нибудь способ, которым я могу это сделать? Я смотрел на != но он интерпретирует HTML, а также :plain фильтр, но не повезло. любая помощь будет высоко ценится, спасибо!

1 ответ

Решение

Я не знаю помощника HAML для этой цели, и вы должны использовать внешний помощник или использовать RegExp. Я знаю, что RegExp на самом деле не лучший инструмент для обработки HTML, но он отлично работает в простых случаях:

%p= message.content.replace(/<\/?\w+\/?>/g, '')

Так как вы добавили hamlc тег, и вы можете захотеть, чтобы это решение работало в браузере, вы можете использовать jQuery для извлечения текстового содержимого:

%p= $(message.content).text()
Другие вопросы по тегам