Hi all I''m having a bit of trouble trying to acheive something, maybe someone can help? I have a model Article, which has an attribute ''body'' The body is a text column in which people can add text and HTML. I''d like to edit certain properties of some of the HTML tags, for example, converting all spaces inside <code> </code> tags to I presume using a reg expression is the best way to achieve this, I''m just not sure of how to word an expression to scan for only characters within the html tags. any ideas? Ta Gavin
You don''t want to fall into the rat hole of parsing HTML with regexes. You need a parsing library like hpricot or similar. http://wiki.github.com/why/hpricot good luck! Tim On Apr 29, 11:09 am, Gavin <ga...-YMj/zd8x6QpKMzDMP321V2ksYUyLi9NM@public.gmane.org> wrote:> Hi all > > I''m having a bit of trouble trying to acheive something, maybe someone > can help? > > I have a model Article, which has an attribute ''body'' > > The body is a text column in which people can add text and HTML. > > I''d like to edit certain properties of some of the HTML tags, for > example, converting all spaces inside <code> </code> tags to > > I presume using a reg expression is the best way to achieve this, I''m > just not sure of how to word an expression to scan for only characters > within the html tags. > > any ideas? > > Ta > > Gavin
Use a CSS rule to style it? code { white-space: pre; } or: code { white-space: nowrap; } You''re just asking for a headache if you try to match paired and possibly nested HTML tags with a Regexp. (Not that it can''t be done, but it gets ugly fast and you need a very capable regular expression engine like Oniguruma from Ruby1.9) -Rob http://www.w3.org/TR/CSS2/text.html#white-space-prop On Apr 29, 2009, at 2:09 PM, Gavin wrote:> > Hi all > > I''m having a bit of trouble trying to acheive something, maybe someone > can help? > > I have a model Article, which has an attribute ''body'' > > The body is a text column in which people can add text and HTML. > > I''d like to edit certain properties of some of the HTML tags, for > example, converting all spaces inside <code> </code> tags to > > I presume using a reg expression is the best way to achieve this, I''m > just not sure of how to word an expression to scan for only characters > within the html tags. > > any ideas? > > Ta > > Gavin > >Rob Biedenharn http://agileconsultingllc.com Rob-xa9cJyRlE0mWcWVYNo9pwxS2lgjeYSpx@public.gmane.org
> > I''d like to edit certain properties of some of the HTML tags, for > example, converting all spaces inside <code> </code> tags to >Take a look at CGI#escape and CGI#escapeElement -- Posted via http://www.ruby-forum.com/.
I was planning on editing the text blob before it''s saved to the database. So a blob like: "This is a big blob of text <code>This is the code part</code> This is another line" would be converted to: "This is a big blob of text <code>This is the code part</code> This is another line" And then called back as <%= @article.body %> in the view. I thought that was a simple option. Would hpricot be appropriate here? I should also add that I plan on having a safe-list of tags, so any potentially harmful tags like <script> would be removed Does that clarify at all? Thanks On Apr 29, 7:14 pm, Tim <mcintyre....-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> You don''t want to fall into the rat hole of parsing HTML with > regexes. You need a parsing library like hpricot or similar. > > http://wiki.github.com/why/hpricot > > good luck! > Tim > > On Apr 29, 11:09 am, Gavin <ga...-YMj/zd8x6QpKMzDMP321V2ksYUyLi9NM@public.gmane.org> wrote: > > > Hi all > > > I''m having a bit of trouble trying to acheive something, maybe someone > > can help? > > > I have a model Article, which has an attribute ''body'' > > > The body is a text column in which people can add text and HTML. > > > I''d like to edit certain properties of some of the HTML tags, for > > example, converting all spaces inside <code> </code> tags to > > > I presume using a reg expression is the best way to achieve this, I''m > > just not sure of how to word an expression to scan for only characters > > within the html tags. > > > any ideas? > > > Ta > > > Gavin
I had planned on formatting the code tags with CSS as you suggested Rob but I also need to wrap specific words in spans to specify their colour
Actually... Just found this => http://coderay.rubychan.de/ looks perfect for my needs Thanks for your suggestions guys
Hi all Managed to solve this issue with CodeRay The site is now up and running - here is a quick tutorial on how I did it incase anybody else wants to do the same: http://handyrailstips.com/tips/5-styling-your-blog-s-code-to-look-like-your-favorite-text-editor-with-coderay :)