1 from logging import Logger
2 from typing import Any, Match, Pattern
3 from xml.etree.ElementTree import Element
5 from markdown import Markdown
7 from .blockparser import BlockParser
11 def build_block_parser(md: Markdown, **kwargs: Any): ...
16 def __init__(self, parser: BlockParser) -> None: ...
17 def lastChild(self, parent: Element) -> Element | None: ...
18 def detab(self, text: str, length: int | None = ...): ...
19 def looseDetab(self, text: str, level: int = ...): ...
20 def test(self, parent: Element, block: str) -> None: ...
21 def run(self, parent: Element, blocks: list[str]) -> None: ...
23 class ListIndentProcessor(BlockProcessor):
26 INDENT_RE: Pattern[str]
27 def __init__(self, parser: BlockParser) -> None: ... # Note: This was done because the args are sent as-is.
28 def create_item(self, parent: Element, block: str) -> None: ...
29 def get_level(self, parent: Element, block: str) -> tuple[int, Element]: ...
31 class CodeBlockProcessor(BlockProcessor): ...
33 class BlockQuoteProcessor(BlockProcessor):
35 def clean(self, line: str) -> str: ...
37 class OListProcessor(BlockProcessor):
41 SIBLING_TAGS: list[str]
43 CHILD_RE: Pattern[str]
44 INDENT_RE: Pattern[str]
45 def __init__(self, parser: BlockParser) -> None: ...
46 def get_items(self, block: str) -> list[str]: ...
48 class UListProcessor(OListProcessor):
51 def __init__(self, parser: BlockParser) -> None: ...
53 class HashHeaderProcessor(BlockProcessor):
56 class SetextHeaderProcessor(BlockProcessor):
59 class HRProcessor(BlockProcessor):
61 SEARCH_RE: Pattern[str]
64 class EmptyBlockProcessor(BlockProcessor): ...
66 class ReferenceProcessor(BlockProcessor):
69 class ParagraphProcessor(BlockProcessor): ...