You want to add simple markup to
plaintext and turn it into HTML.
Solution
Use
RedCloth, written by "why the lucky stiff" and available as the
RedCloth gem. It extends Rubys string class to support Textile markup: its to_html method converts Textile markup to HTML.
Heres a simple document:
require
ubygems
require
edcloth
text = RedCloth.new %{Who would ever write "HTML":http://www.w3.org/MarkUp/
markup directly?
I mean, _who has the time_? Nobody, thats who:
|_. Person |_. Has the time? |
| Jake | No |
| Alice | No |
| Rodney | Not since the accident |
}
puts text.to_html
#
Who would ever write
# <a href="http://www.w3.org/MarkUp/">HTML</a>
# markup directly?
#
#
I mean, who has the time? Nobody, that’s who:
#
#
#
#
Person
#
Has the time?
#
# …
The Textile version is more readable and easier to edit.
Discussion
The
Textile markup language lets you produce HTML without having to write any HTML. You just add punctuation to
plain text, to convey what markup youd like. Paragraph breaks are represented by blank lines, italics by underscores, tables by ASCII-art drawings of tables.
A text-based markup that converts to HTML is very useful in weblog and wiki software, where the markup will be edited many times. Its also useful for hiding the complexity of HTML from new computer users. We wrote this entire book using a Textile-like markup, though it was converted to Docbook instead of HTML.
See Also
The RedCloth homepage (http://www.whytheluckystiff.net/ruby/redcloth/)
A comprehensive Textile reference (http://hobix.com/textile/)and a quick reference (http://hobix.com/textile/quick.html)
You can experiment with Textile markup at the languages homepage (http://www.textism.com/tools/textile/)
Markdown (http://daringfireball.net/projects/markdown/)is another popular simple markup language for
plain text; you can turn Markdown text to XHTML with the BlueCloth gem (project page: http://www.deveiate.org/projects/BlueCloth); because BlueCloth and RedCloth both define String#to_html, its not easy to use them both in the same program