# API Reference URL: /docs/reference/api/ Section: reference Tags: api, reference -------------------------------------------------------------------------------- API Reference Core API for parsing and rendering Markdown. High-Level API parse() Parse Markdown source into a typed AST. def parse(source: str, *, source_file: str | None = None) -> Sequence[Block] Parameters: source: Markdown source text source_file: Optional source file path for error messages Returns: Sequence of Block nodes Example: from patitas import parse doc = parse("# Hello **World**") print(doc[0]) # Heading(level=1, ...) render() Render a Patitas AST to HTML. def render(doc: Sequence[Block], *, source: str = "") -> str Parameters: doc: The AST as a sequence of Block nodes source: Original Markdown source for zero-copy extraction Returns: Rendered HTML string Example: from patitas import parse, render doc = parse("# Hello") html = render(doc, source="# Hello") print(html) # <h1>Hello</h1> Markdown High-level processor combining parsing and rendering. class Markdown: def __init__( self, *, highlight: bool = False, plugins: list[str] | None = None, ) -> None: ... def __call__(self, source: str, *, source_file: str | None = None) -> str: ... def parse(self, source: str, *, source_file: str | None = None) -> Sequence[Block]: ... def render(self, doc: Sequence[Block], *, source: str = "") -> str: ... Example: from patitas import Markdown md = Markdown() html = md("# Hello **World**") print(html) # <h1>Hello <strong>World</strong></h1> Low-Level API Parser The Markdown parser. from patitas.parser import Parser parser = Parser(source, source_file="example.md") doc = parser.parse() Lexer The state-machine lexer. from patitas.lexer import Lexer lexer = Lexer(source) tokens = list(lexer) HtmlRenderer The HTML renderer. from patitas.renderers.html import HtmlRenderer renderer = HtmlRenderer(source=source) html = renderer.render(doc) Extension Points set_highlighter() Set the global syntax highlighter. from patitas.highlighting import set_highlighter, Highlighter class MyHighlighter: def highlight(self, code: str, lang: str) -> str: return f"<pre><code class='{lang}'>{code}</code></pre>" set_highlighter(MyHighlighter()) set_icon_resolver() Set the global icon resolver. from patitas.icons import set_icon_resolver, IconResolver class MyIcons: def resolve(self, name: str) -> str | None: return f"<span class='icon-{name}'></span>" set_icon_resolver(MyIcons()) -------------------------------------------------------------------------------- Metadata: - Word Count: 300 - Reading Time: 2 minutes