Types
TRstNodeKind = enum rnInner, rnHeadline, rnOverline, rnTransition, rnParagraph, rnBulletList, rnBulletItem, rnEnumList, rnEnumItem, rnDefList, rnDefItem, rnDefName, rnDefBody, rnFieldList, rnField, rnFieldName, rnFieldBody, rnOptionList, rnOptionListItem, rnOptionGroup, rnOption, rnOptionString, rnOptionArgument, rnDescription, rnLiteralBlock, rnQuotedLiteralBlock, rnLineBlock, rnLineBlockItem, rnBlockQuote, rnTable, rnGridTable, rnTableRow, rnTableHeaderCell, rnTableDataCell, rnLabel, rnFootnote, rnCitation, rnStandaloneHyperlink, rnHyperlink, rnRef, rnDirective, rnDirArg, rnRaw, rnTitle, rnContents, rnImage, rnFigure, rnCodeBlock, rnRawHtml, rnRawLatex, rnContainer, rnIndex, rnSubstitutionDef, rnGeneralRole, rnSub, rnSup, rnIdx, rnEmphasis, rnStrongEmphasis, rnTripleEmphasis, rnInterpretedText, rnInlineLiteral, rnSubstitutionReferences, rnSmiley, rnLeaf
- the possible node kinds of an PRstNode
PRstNode = ref TRstNode
- an RST node
TRstNodeSeq = seq[PRstNode]
TRstNode = object kind*: TRstNodeKind ## the node's kind text*: string ## valid for leafs in the AST; and the title of ## the document or the section level*: int ## valid for some node kinds sons*: TRstNodeSeq ## the node's sons
- an RST node's description
Procs
proc len(n: PRstNode): int {.raises: [], tags: [].}
proc newRstNode(kind: TRstNodeKind): PRstNode {.raises: [], tags: [].}
proc newRstNode(kind: TRstNodeKind; s: string): PRstNode {.raises: [], tags: [].}
proc lastSon(n: PRstNode): PRstNode {.raises: [], tags: [].}
proc add(father, son: PRstNode) {.raises: [], tags: [].}
proc addIfNotNil(father, son: PRstNode) {.raises: [], tags: [].}
proc renderRstToRst(n: PRstNode; result: var string) {.raises: [E_Base], tags: [TEffect].}
- renders n into its string representation and appends to result.