Is there an HTML safe truncate method in Rails?
I have a string of HTML in Rails. I'd like to truncate the string after a certain number of characters not including the HTML markup. Also, if the split happens to fall in the middle of an opening and closing tag, I'd like to close the open tag/s. For example;
html = "123<a href='#'>456</a>7890" truncate_markup(html, :length => 5) --> "123<a href='#'>45</a>"
There are two completely different solutions both with the same name: truncate_html
- https://github.com/ianwhite/truncate_html : This is a gem and uses an html parser (nokogiri)
- https://github.com/hgmnz/truncate_html : This is a file you put in your helpers directory. It uses regular expressions and has no dependencies.
the regular truncate function works fine, just pass :escape => false as an option to keep the HTML intact. eg:
truncate(@html_text, :length => 230, :omission => "" , :escape => false)
*Edit I didn't read the question very carefully (or at all TBH), so this answer does not solve this question... It IS the answer I happened to be looking for though, so hopefully it helps 1 or 2 people :)