class markdown::MarkdownWriter

sys::Obj
  markdown::MarkdownWriter

@Js

Source

Writer for Markdown (CommonMark) text.

atLineStart

Bool atLineStart := true { private set }

Source

Wheter we're at the line start (not counting any prefixes), i.e. after a line or block.

block

Void block()

Source

Enqueue a block separator to be written before the next text is written. Block separators are not written straight away because if there are no more blocks to write, we don't want a separator (at the end of the document)

lastChar

Int lastChar := 0 { private set }

Source

The last character that was written

line

Void line()

Source

Write a newline (line terminator).

make

new make(OutStream out)

Source

popPrefix

Void popPrefix()

Source

Remove the last prefix from the top of the stack

popRawEscape

Void popRawEscape()

Source

Remove the last raw escape from the top of the stack

popTight

Void popTight()

Source

Remove the last "tight" setting from the top of the stack

pushPrefix

Void pushPrefix(Str prefix)

Source

Push a prefix onto the top of the stack. All prefixes are written at the beginning of each line, until the prefix is popped again.

pushRawEscape

Void pushRawEscape(|Int->Bool| rawEscape)

Source

Escape the characters matching the supplied matcher, in all text (text and raw). This might be usefult to extensions that add another layer of syntax, e.g. the tables extension that uses | to separate cells and needs all | characters to be escaped (even in code spans)

pushTight

Void pushTight(Bool tight)

Source

Change whether blocks are tight or loose. Loose is the default where blocks are separated by a blank line. Tight is where blocks are not separated by a blank line. Tight blocks are used in lists, if there are no blank lines within the list.

Note that changing this does not affect block separators that have already been enqueued with block, only future ones.

raw

Void raw(Obj obj)

Source

Write the supplied string or character (raw/unescaped except if pushRawEscape was used).

text

Void text(Str s, |Int->Bool|? escape := null)

Source

Write the supplied string with escaping

writePrefix

Void writePrefix(Str prefix)

Source

Write a prefix