markdown_it.tree module

A tree representation of a linear markdown-it token stream.

This module is not part of upstream JavaScript markdown-it.

class markdown_it.tree.SyntaxTreeNode(tokens: Sequence[markdown_it.token.Token] = (), *, create_root: bool = True)[源代码]

基类:object

A Markdown syntax tree node.

A class that can be used to construct a tree representation of a linear markdown-it-py token stream.

Each node in the tree represents either:
  • root of the Markdown document

  • a single unnested Token

  • a Token “_open” and “_close” token pair, and the tokens nested in

    between

attrGet(name: str) Union[None, str, int, float][源代码]

Get the value of attribute name, or null if it does not exist.

property attrs: Dict[str, Union[str, int, float]]

Html attributes.

property block: bool

True for block-level tokens, false for inline tokens.

property children: List[markdown_it.tree._NodeType]
property content: str

In a case of self-closing tag (code, html, fence, etc.), it has contents of this tag.

property hidden: bool

If it’s true, ignore this element when rendering. Used for tight lists to hide paragraphs.

property info: str

fence infostring

property is_nested: bool

Is this node nested?.

Returns True if the node represents a Token pair and tokens in the sequence between them, where Token.nesting of the first Token in the pair is 1 and nesting of the other Token is -1.

property is_root: bool

Is the node a special root node?

property level: int

nesting level, the same as state.level

property map: Optional[Tuple[int, int]]

Source map info. Format: Tuple[ line_begin, line_end ]

property markup: str

‘*’ or ‘_’ for emphasis, fence string for fence, etc.

property meta: dict

A place for plugins to store an arbitrary data.

property next_sibling: Optional[markdown_it.tree._NodeType]

Get the next node in the sequence of siblings.

Returns None if this is the last sibling.

property parent: Optional[markdown_it.tree._NodeType]
pretty(*, indent: int = 2, show_text: bool = False, _current: int = 0) str[源代码]

Create an XML style string of the tree.

property previous_sibling: Optional[markdown_it.tree._NodeType]

Get the previous node in the sequence of siblings.

Returns None if this is the first sibling.

property siblings: Sequence[markdown_it.tree._NodeType]

Get siblings of the node.

Gets the whole group of siblings, including self.

property tag: str

html tag name, e.g. “p”

to_tokens() List[markdown_it.token.Token][源代码]

Recover the linear token stream.

property type: str

Get a string type of the represented syntax.

  • “root” for root nodes

  • Token.type if the node represents an unnested token

  • Token.type of the opening token, with “_open” suffix stripped, if

    the node represents a nester token pair

walk(*, include_self: bool = True) Generator[markdown_it.tree._NodeType, None, None][源代码]

Recursively yield all descendant nodes in the tree starting at self.

The order mimics the order of the underlying linear token stream (i.e. depth first).