class markdown::MarkdownWriter
sys::Obj markdown::MarkdownWriter
@Js
Writer for Markdown (CommonMark) text.
- atLineStart
-
Bool atLineStart := true { private set }
Wheter we're at the line start (not counting any prefixes), i.e. after a
line
orblock
. - block
-
Void block()
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 }
The last character that was written
- line
-
Void line()
Write a newline (line terminator).
- make
-
new make(OutStream out)
- popPrefix
-
Void popPrefix()
Remove the last prefix from the top of the stack
- popRawEscape
-
Void popRawEscape()
Remove the last raw escape from the top of the stack
- popTight
-
Void popTight()
Remove the last "tight" setting from the top of the stack
- pushPrefix
-
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)
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
-
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
-
Write the supplied string or character (raw/unescaped except if
pushRawEscape
was used). - text
-
Void text(Str s, |Int->Bool|? escape := null)
Write the supplied string with escaping
- writePrefix
-
Write a prefix