margrave/parser

Source   Edit  

Types

DelimFinishReason = enum
  frDone, frReachedEnd, frFailed
Source   Edit  

Consts

IdStarts = {'(', '[', '{', ':'}
Source   Edit  
InlineWhitespace = {'\t', '\v'..'\f', ' '}
Source   Edit  
LegalId = {'a'..'z', 'A'..'Z', '0'..'9', '-', '_', ':', '.'}
Source   Edit  
SpecialLineTags = {tagUnorderedList, tagOrderedList, tagBlockquote}
Source   Edit  

Procs

proc parseAmpStr(parser; options: options:type): NativeString
Source   Edit  
proc parseBracket(parser; options: options:type; image: bool;
                  singleLine: SingleLineBool): MargraveElement
Source   Edit  
proc parseCodeBlock(parser; options: options:type; delimChar: char): MargraveElement {.
    inline.}
Source   Edit  
proc parseCodeBlockStr(parser; options: options:type; delimChar: char): tuple[
    language, code: NativeString]
Source   Edit  
proc parseCurly(parser; options: options:type): NativeString

Parses a curly bracket element.

If -d:margraveCurlyNoHtmlEscape is defined, initial ! characters are ignored and no HTML chars are escaped.

Source   Edit  
proc parseDelimed(parser; options: options:type; delim: string;
                  singleLine: SingleLineBool): (DelimFinishReason,
    seq[MargraveElement]) {....gcsafe.}
Source   Edit  
proc parseId(parser; startChar: char): NativeString {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc parseInline(parser; options: options:type; singleLine: SingleLineBool): seq[
    MargraveElement] {.inline.}
Source   Edit  
proc parseReferenceName(parser; options: options:type; failed: var bool): NativeString
Does not reset position after failing. Source   Edit  
proc parseTopLevel(parser; options: options:type): seq[MargraveElement]
Source   Edit  

Templates

template parseLine(parser; options): seq[MargraveElement]
Source   Edit  
template parseSingleLine(parser; options): seq[MargraveElement]
Source   Edit