Transforming Plain Text to HTML

Problem

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:

# # # # # # # …

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

Person Has the time?

Категории