|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Hi folks.
I'm trying to process blog posts using RedCloth, stripping any html entered by the user, but leaving <object>, <embed> and <param> tags untouched. So far I've tried... # ======================== require 'rubygems' require 'redcloth' t = 'I am a *badger* <object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/xyujSekNfsg&rel=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/xyujSekNfsg&rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object>' t = t.gsub( /(<object(.|\n)+?<\/object>)/ , "<notextile>#{$1}</notextile>") r = RedCloth.new(t, [:filter_html]) p r.to_html # ======================== => "<p>I am a <strong>badger</strong> </p>" But the object tags are still stripped, as the filter_html ignores the notextlie tags. Has anyone done similar to this before, or know how I can add tags to the ignore list? Thanks in advance. -- Posted via http://www.ruby-forum.com/. |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
Just noticed the Gsub is wrong, it should be:
t = t.gsub( /(<object(.|\n)+?<\/object>)/ , "<notextile>\\1</notextile>") Still not problem solved though. -- Posted via http://www.ruby-forum.com/. |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
You could use that regexp to pull out the object/embed tags into a
temporary variable, put in a temporary key word, then replace the key word with the object/embed data after generating the RedCloth HTML. May not be exactly what you want, but it'll work. |
|
![]() |
| Outils de la discussion | |
|
|