lunamark.writer.generic
Generic writer for lunamark. This serves as generic documentation for lunamark writers, which all export a table with the same functions defined.
New writers can simply modify the generic writer: for example,
local Xml = generic.new(options)
Xml.linebreak = "<linebreak />"
local escaped = {
["<" ] = "<",
[">" ] = ">",
["&" ] = "&",
["\"" ] = """,
["'" ] = "'"
}
function Xml.string(s)
return s:gsub(".",escaped)
end
new(options)
Returns a table with functions defining a generic lunamark writer, which outputs plain text with no formatting. options is an optional table with the following fields:
layoutminimize(no space between blocks)compact(no extra blank lines between blocks)default(blank line between blocks)
The table contains the following fields:
W.set_metadata(key, val)
Set metadata field key to val.
W.add_metadata(key, val)
Add val to an array in metadata field key.
W.get_metadata()
Return metadata table.
W.space
A space (string).
W.start_document()
Setup tasks at beginning of document.
W.stop_document()
Finalization tasks at end of document.
W.plain(s)
Plain text block (not formatted as a pragraph).
W.linebreak
A line break (string).
W.interblocksep
Line breaks to use between block elements.
W.containersep
Line breaks to use between a container (like a <div> tag) and the adjacent block element.
W.ellipsis
Ellipsis (string).
W.mdash
Em dash (string).
W.ndash
En dash (string).
W.singlequoted(s)
String in curly single quotes.
W.doublequoted(s)
String in curly double quotes.
W.string(s)
String, escaped as needed for the output format.
W.code(s)
Inline (verbatim) code.
W.link(label, uri, title)
A link with link text label, uri uri, and title title.
W.image(label, src, title)
An image link with alt text label, source src, and title title.
W.paragraph(s)
A paragraph.
W.bulletlist(items,tight)
A bullet list with contents items (an array). If tight is true, returns a “tight” list (with minimal space between items).
W.orderedlist(items,tight,startnum)
An ordered list with contents items (an array). If tight is true, returns a “tight” list (with minimal space between items). If optional number startnum is present, use it as the number of the first list item.
W.inline_html(s)
Inline HTML.
W.display_html(s)
Display HTML (HTML block).
W.emphasis(s)
Emphasized text.
W.strong(s)
Strongly emphasized text.
W.blockquote(s)
Block quotation.
W.verbatim(s)
Verbatim block.
W.header(s, level)
Header level level, with text s.
W.hrule
Horizontal rule.
W.note(contents)
A footnote or endnote.
W.definitionlist(items, tight)
A definition list. items is an array of tables, each of the form { term = t, definitions = defs, tight = tight }, where t is a string and defs is an array of strings. tight is a boolean, true if it is a tight list.
W.template
A cosmo template to be used in producing a standalone document. $body is replaced with the document body, $title with the title, and so on.