RDoc::Markup

RDoc::Markup parses plain text documents and
attempts to decompose them into their constituent parts. Some of these
parts are high-level: paragraphs, chunks of verbatim text, list entries and
the like. Other parts happen at the character level: a piece of bold text,
a word in code font. This markup is similar in spirit to that used on
WikiWiki webs, where folks create web pages using a simple set of
formatting rules.

RDoc::Markup itself does no output formatting:
this is left to a different set of classes.

RDoc::Markup is extendable at runtime: you can
add new markup elements to be recognised in the documents that RDoc::Markup parses.

RDoc::Markup is intended to be the basis for a
family of tools which share the common requirement that simple, plain-text
should be rendered in a variety of different output formats and media. It
is envisaged that RDoc::Markup could be the basis
for formatting RDoc style comment blocks, Wiki
entries, and online FAQs.

You can extend the RDoc::Markup parser to
recognise new markup sequences, and to add special processing for text that
matches a regular expression. Here we make WikiWords significant to the
parser, and also make the sequences {word} and <no>text…</no>
signify strike-through text. When then subclass the HTML output class to
deal with these:

We take a string, split it into lines, work out the type of each line, and
from there deduce groups of lines (for example all lines in a paragraph).
We then invoke the output formatter using a Visitor to display the result.