Truncate function and html tags


#1

I have a text field in the db for the body of user posts. Users
submit the posts using the tinymce editor, which allows certain html
tags. The posts are stored in the db with allowed html tags directly
in the post, so I could have something like:

This post will try to eliminate the confusion regarding rails and the truncate function.

I am trying to display the first 300 characters of the post on a
“what’s new” type page. I am using the truncate function of rails to
grab the first bit of each post for the what’s new page…

truncate(post.text, 300)

which works just fine, except I have times where the 300 character
limit hits in the middle of a tag. One such post is currently
screwing up my layout… the 300 character limit is hitting in the
middle of the “close paragraph” tag, so my output html is:

This post will try to eliminate the confusion regarding rails and the truncate function.</

Voiding the that closes this area out.

Simple ideas to fix this welcome… :slight_smile:


#2

On Mar 2, 7:57 pm, “removed_email_address@domain.invalid”
removed_email_address@domain.invalid wrote:

grab the first bit of each post for the what’s new page…

Voiding the that closes this area out.

Simple ideas to fix this welcome… :slight_smile:

Take a look at henrik’s truncate_html helper:
http://henrik.nyh.se/2008/01/rails-truncate-html-helper


#3

That’s perfect… I knew someone had already invented the wheel! :slight_smile:

Thanks!


#4

https://rails.lighthouseapp.com/projects/8994/tickets/2582-actionviewtexthelper-graceful-truncate#ticket-2582-1
This could help, too! :stuck_out_tongue:

On Mon, Mar 2, 2009 at 12:57 PM, removed_email_address@domain.invalid <
removed_email_address@domain.invalid> wrote:

“what’s new” type page. I am using the truncate function of rails to
the truncate function.</

Voiding the that closes this area out.

Simple ideas to fix this welcome… :slight_smile:


Emanuele T.
+1 (619) 549 3230
1985 Sherington Place, #E302
Newport Beach, CA 92663
http://mekdigital.com