Decorator
is used to emit mardown into a specific format.Default decorator used is HTMLDecorator
.
markdown :: Decorator :: add_blockquote
Render a blockquote.markdown :: Decorator :: add_headline
Render a headline block with corresponding level.markdown :: Decorator :: add_line_break
Render a line breakmarkdown :: Decorator :: add_listitem
Render a list item.markdown :: Decorator :: add_orderedlist
Render an ordered list.markdown :: Decorator :: add_paragraph
Render a paragraph block.markdown :: Decorator :: add_span_code
Render a code span reading from a buffer.markdown :: Decorator :: add_strike
Render a strike text.markdown :: Decorator :: add_strong
Render a strong text.markdown :: Decorator :: add_unorderedlist
Render an unordered list.markdown :: Decorator :: add_wikilink
Renders a[[wikilink]]
item.
markdown :: Decorator :: append_code
Render code text from buffer and escape it.markdown :: Decorator :: append_value
Render a text and escape it.markdown :: Decorator :: defaultinit
markdown :: Decorator :: escape_char
Render a character escape.markdown :: Decorator :: add_blockquote
Render a blockquote.markdown :: Decorator :: add_headline
Render a headline block with corresponding level.markdown :: Decorator :: add_line_break
Render a line breakmarkdown :: Decorator :: add_listitem
Render a list item.markdown :: Decorator :: add_orderedlist
Render an ordered list.markdown :: Decorator :: add_paragraph
Render a paragraph block.markdown :: Decorator :: add_span_code
Render a code span reading from a buffer.markdown :: Decorator :: add_strike
Render a strike text.markdown :: Decorator :: add_strong
Render a strong text.markdown :: Decorator :: add_unorderedlist
Render an unordered list.markdown :: Decorator :: add_wikilink
Renders a[[wikilink]]
item.
markdown :: Decorator :: append_code
Render code text from buffer and escape it.markdown :: Decorator :: append_value
Render a text and escape it.core :: Object :: class_factory
Implementation used byget_class
to create the specific class.
markdown :: Decorator :: defaultinit
core :: Object :: defaultinit
markdown :: Decorator :: escape_char
Render a character escape.core :: Object :: is_same_instance
Return true ifself
and other
are the same instance (i.e. same identity).
core :: Object :: is_same_serialized
Isself
the same as other
in a serialization context?
core :: Object :: is_same_type
Return true ifself
and other
have the same dynamic type.
core :: Object :: output_class_name
Display class name on stdout (debug only).
# A `Decorator` is used to emit mardown into a specific format.
# Default decorator used is `HTMLDecorator`.
interface Decorator
# Kind of processor used
type PROCESSOR: MarkdownProcessor
# Render a single plain char.
#
# Redefine this method to add special escaping for plain text.
fun add_char(v: PROCESSOR, c: Char) do v.addc c
# Render a ruler block.
fun add_ruler(v: PROCESSOR, block: BlockRuler) is abstract
# Render a headline block with corresponding level.
fun add_headline(v: PROCESSOR, block: BlockHeadline) is abstract
# Render a paragraph block.
fun add_paragraph(v: PROCESSOR, block: BlockParagraph) is abstract
# Render a code or fence block.
fun add_code(v: PROCESSOR, block: BlockCode) is abstract
# Render a blockquote.
fun add_blockquote(v: PROCESSOR, block: BlockQuote) is abstract
# Render an unordered list.
fun add_unorderedlist(v: PROCESSOR, block: BlockUnorderedList) is abstract
# Render an ordered list.
fun add_orderedlist(v: PROCESSOR, block: BlockOrderedList) is abstract
# Render a list item.
fun add_listitem(v: PROCESSOR, block: BlockListItem) is abstract
# Render an emphasis text.
fun add_em(v: PROCESSOR, text: Text) is abstract
# Render a strong text.
fun add_strong(v: PROCESSOR, text: Text) is abstract
# Render a strike text.
#
# Extended mode only (see `MarkdownProcessor::ext_mode`)
fun add_strike(v: PROCESSOR, text: Text) is abstract
# Render a link.
fun add_link(v: PROCESSOR, link: Text, name: Text, comment: nullable Text) is abstract
# Render an image.
fun add_image(v: PROCESSOR, link: Text, name: Text, comment: nullable Text) is abstract
# Render an abbreviation.
fun add_abbr(v: PROCESSOR, name: Text, comment: Text) is abstract
# Render a code span reading from a buffer.
fun add_span_code(v: PROCESSOR, buffer: Text, from, to: Int) is abstract
# Render a text and escape it.
fun append_value(v: PROCESSOR, value: Text) is abstract
# Render code text from buffer and escape it.
fun append_code(v: PROCESSOR, buffer: Text, from, to: Int) is abstract
# Render a character escape.
fun escape_char(v: PROCESSOR, char: Char) is abstract
# Render a line break
fun add_line_break(v: PROCESSOR) is abstract
# Generate a new html valid id from a `String`.
fun strip_id(txt: String): String is abstract
# Found headlines during the processing labeled by their ids.
fun headlines: ArrayMap[String, HeadLine] is abstract
end
lib/markdown/markdown.nit:637,1--713,3
redef class Decorator
# Renders a `[[wikilink]]` item.
fun add_wikilink(v: PROCESSOR, token: TokenWikiLink) do
if token.name != null then
v.add "[[{token.name.as(not null).to_s}|{token.link.as(not null).to_s}]]"
else
v.add "[[{token.link.as(not null).to_s}]]"
end
end
end
lib/markdown/wikilinks.nit:41,1--51,3