Конвертировать HTML в правильный текст?

Есть ли способ, как я могу преобразовать HTML в обычный текст? Я перепробовал все, от raw до очистки, и даже самоцвет Mail с его методом text_part, который должен делать именно это, но у меня не работает.

Мой лучший выстрел до сих пор был strip_tags(strip_links(resource.body)) но <p>, <ul> и т. д. не были правильно преобразованы.

Это более или менее то, что я имею в HTML:

Hello

This is some text. Blah blah blah.

Address:
John Doe
10 ABC Street
Whatever City

New Features
- Feature A
- Feature B
- Feature C
Check this out: http://www.google.com

Best,
Admin

который превращается в нечто подобное

Hello
This is some text. Blah blah blah.
Address: John Doe 10 ABC Street Whatever City

New Features Feature A Feature B Feature C
Check this out: http://www.google.com

Best, Admin

Любая идея?

2 ответа

Решение

Нашел решение здесь: https://github.com/alexdunae/premailer/blob/master/lib/premailer/html_to_plain_text.rb

Работает как шарм!

Rails 4.2.1 имеет #strip_tags встроенный метод специально для удаления тегов HTML.

Некоторые примеры:

strip_tags("Strip <i>these</i> tags!")

=> Уберите эти теги!

strip_tags("<b>Bold</b> no more!  <a href='more.html'>See more here</a>...")

=> Жирный не более! Подробнее здесь...

strip_tags("<div id='top-bar'>Welcome to my website!</div>")

=> Добро пожаловать на мой сайт!

Проверьте это в документации по API.

Другие вопросы по тегам