<!--
These are the tags generated by wikklytext.buildXML and recognized
by wikklytext.buildHTML. Macros are allowed to generate and
return any of these as well.
Last synced with WikklyText sources on 2009-10-08
-- CAUTION -------------------------------------------------------------
Macro writers MUST ensure that no unfiltered user data is injected into
the 'style' attribute of <MacroBlock> or <MacroInline>
(at least in Safe Mode).
This is the only attribute that is not sanity checked when generating
HTML in Safe Mode.
------------------------------------------------------------------------
General note: Only the <Text*> tags are allowed to have
character content. ALL of the remaining tags (except for
the self-closing tags) are containers.
Overall structure:
<WikklyContent>
<ErrorsList>
..
</ErrorsList>
<Content>
..
</Content>
-->
<!-- Overall container -->
<WikklyContent>
<!-- Container for content -->
<Content>
<!-- Used to pass around lists of Elements. Ignore for
HTML output (output subelements instead).
-->
<ElementList>
<!--
Links. Only the following subnodes are recognized.
-->
<Link>
<!-- The object linked to, i.e. <a ..> LinkSource </a> -->
<LinkSource>
<!-- The URL, i.e. <a href="LinkDest"> ... </a> -->
<LinkDest>
<!--
Basic text styling, can be nested freely (although for example
nesting <Bold> inside <Bold> makes no sense, it is allowed).
-->
<Bold>
<Italic>
<Strikethrough>
<Underline>
<Superscript>
<Subscript>
<!--
Generic inline CSS styling.
If 'style' is missing, uses default highlighting.
In 'Safe Mode', style is ignored to prevent HTML injection.
-->
<Highlight [style="CSS style string"]>
<!-- Numbered lists. 'level' is indent level. -->
<NumberedList>
<NumberedListItem level="NR">
<!-- Unumbered lists. 'level' is indent level. -->
<UnnumberedList>
<UnnumberedListItem level="NR">
<!-- Headings. 'level' is heading level -->
<Heading level="NR">
<!-- Do a block or line indent of contents -->
<BlockIndent>
<LineIndent>
<!-- A block of code -->
<CodeBlock>
<!-- Inline code -->
<CodeInline>
<!--
Create a named anchor. Uses the first <Text> node
as the name
-->
<CreateAnchor>
<!-- Images -->
<Image>
<!-- Optional: URL to link to (when image is clicked) -->
<ImageLink>
<!-- Source of image, i.e. for <img src=ImageFilename> -->
<ImageFilename>
<!-- Title for popup -->
<ImageTitle>
<!-- Tables -->
<Table>
<!-- Caption, must be first tag if present -->
<TableCaption>
<!-- Each row ... -->
<TableRow>
<!-- Each cell ...
In "Safe Mode", bgcolor is ignored to prevent HTML injection. -->
<TableCell type="header|data" text-align="left|center|right"
[skip="1"] [colspan="NR"] [rowspan="NR"] [bgcolor="color"]>
<!-- Definition lists -->
<DefinitionList>
<!-- Each list entry ... -->
<DefinitionEntry>
<!-- One Term & Def per entry.
Both must be present (even if empty) and in order. -->
<DefinitionTerm>
<DefinitionDef>
<!-- A block of content styled by the given CSS class -->
<CSSBlock class="CLASSNAME">
<!-- Self-closing tags (no subnodes recognized) -->
<Separator />
<BlankLines count="NR" />
<LineBreak />
<DashChar />
<ErrorsList>
<Error>
<ErrorMessage>
<ErrorLookingAt>
<ErrorTrace>
<!--
A MacroBlock is a DIV-like element with optional class, style, and id attributes.
It is called "MacroBlock" because it is meant for use by macros to define
their own blocks when an existing tag won't do.
-->
<MacroBlock [class="CLASSNAME"] [style="CSS style"] [id="ID"]>
<!--
MacroInline is the same as MacroBlock, but is meant as a <span>
element instead of a <div>.
-->
<MacroInline [class="CLASSNAME"] [style="CSS style"] [id="ID"]>
<!--
As noted above, only <Text*> nodes are allowed to contain
character data. There are several types of Text nodes depending
on the type of content.
Text nodes are not allowed to have any subnodes; only their
character data is recognized.
-->
<!-- Normal text, HTML-special chars are escaped -->
<Text>
<!-- Like <Text>, but whitespace is preserved as well -->
<TextCode>
<!-- No escaping, written as raw chars
In "Safe Mode", these are ignored. -->
<TextHTML>
<!-- For URLs under LinkURL or ImageSource tags -->
<TextURL>
<!-- Like <Text> but no wikification of text is performed -->
<TextNoWiki>
<!-- For 2.x parser -- not yet implemented -->
<!-- A macro call -->
<MacroCall>
<!-- Subnodes will be either ... -->
<TextMacroArg>
<!--
... for args parsed directly from wikitext, but can
be any other type of node for nodes that have already been evaluated.
(Note especially that another <MacroCall> can be one of the elements
to denote an inner macro call.)
The name of the macro to call is simply be the first element.text
-->
<!-- Embedded Python code -->
<PyCode>
<TextPyCode> .. code here ...