NAME
Text::WikiText - Converting WikiText markup to other formats
SYNOPSIS
use Text::WikiText;
print Text::WikiText->new->convert(\*STDIN, format => 'Latex');
or
use Text::WikiText;
use Text::WikiText::Output::HTML;
my $parser = Text::WikiText->new;
my $document = $parser->parse(\*STDIN);
my $html = Text::WikiText::Output::HTML->new->dump($document);
print $html;
DESCRIPTION
The WikiText markup specification (and its source in WikiText) may be found at:
http://podius.wox.org/documentation/wikitext-spec.html
http://podius.wox.org/documentation/wikitext-spec.txt
Text::WikiText provides a parser for the WikiText markup language, and output modules to convert parsed documents into other markup languages, such as HTML, Latex or Pod.
METHODS
The following methods are available:
new, parse, convert.
- new
-
Create a new WikiText parser object.
- parse handle
- parse string
-
Parse a WikiText document from an IO::Handle or a string variable. The function returns the parsed document as a tree structure as defined below.
- convert handle [options]
- convert string [options]
-
Parse and convert a WikiText document. This method uses parse to parse a WikiText document and immediately converts it to the specified output format.
The options parameter is a hash reference specifying the output format and various output options.
- format
-
Specifies the output format. Valid options are HTML and Latex. Defaults to HTML.
- full_page
-
Specifies whether the outputted string should be a full document, or an embeddable document part. This options decides whether the output module should generate document headers and footers. Defaults to 0 (omit document headers and footers).
- title
-
Specifies the output document title and author. The values are used only when full_page is set. Defaults are undefined.
- heading_offset
-
Specifies an optional offset applied to the level of all headings. An offset of 1 will convert level 1 headings to level 2, level 2 headings to level 3, etc. This option is useful when the output is embedded into other documents. Defaults to 0.
- no_verbatim
-
Specifies whether verbatim blocks should be omitted from the output. Verbatim blocks can break the output document structure and thus should only be allowed from trusted sources. Defaults to 0 (include verbatim blocks).
- flat_lists (HTML only)
-
Specifies whether compact lists include additional paragraph elements. Applies to ul, ol, and dl elements. Defaults to 0 (generate additional paragraph elements).
Example:
<!-- normal output --> <ul> <li><p>foo</p></li> <li><p>bar</p></li> </ul> <!-- flat output --> <ul> <li>foo</li> <li>bar</li> </ul>
DOCUMENT TREE
Note: The document structure might be redefined in the future.
A parsed WikiText document is an anonymous array of WikiText elements. Each element is an anonymous hash with various properties. All elements have at least the field type, used to identify the type of the element.
Four categories of items are defined:
- Sections
-
SECTION
Fields: level, heading, content.
- Environments
-
QUOTE, LISTING, ENUMERATION, DESCRIPTION.
Fields: content.
- Paragraphs
-
TABLE, RULE, P, PRE, CODE, COMMENT, VERBATIM.
Fields: text (all but TABLE and RULE), content (TABLE only).
- Formatting elements
-
EMPHASIS, STRONG, UNDERLINE, STRIKE, TYPEWRITER, LINK, TEXT, VERBATIM.
Fields: text.
Sections can contain other sections, environments and paragraphs. Environments can contain other environments and paragraphs. Paragraphs can contain formatting elemens. Formatting elements contain plain text.
AUTHORS
Enno Cramer, Mikhael Goikhman
SEE ALSO
wikitext-convert, Text::WikiText::InputFilter, Text::WikiText::Output.