docs.frontmatter

Page actions AI-ready formats and sharing
Open LLM text
Share with AI
Ask Claude Ask ChatGPT Ask Gemini Ask Copilot

YAML frontmatter parser for markdown documentation files.

Parses the---delimited YAML header from markdown files. Missing frontmatter is handled gracefully: title is derived from the first #heading, and all other…

YAML frontmatter parser for markdown documentation files.

Parses the---delimited YAML header from markdown files. Missing frontmatter is handled gracefully: title is derived from the first #heading, and all other fields use defaults.

docs.frontmatter

Name Type Default Description
type
qualified_name
element_type
description
source_file
line_number
is_autodoc
autodoc_element
_autodoc_template
_autodoc_url_path
_autodoc_page_type
title
doc_content_hash

Symbols on this page

parse_frontmatter
function
def parse_frontmatter(text: str) -> tuple[dict[str, object], str]

Split frontmatter from markdown body.

Parameters

Name Type Default Description
text str
_meta_from_dict
function
def _meta_from_dict(d: dict[str, object]) -> DocMetadata

Build aDocMetadatafrom a parsed frontmatter dict.

Parameters

Name Type Default Description
d dict[str, object]
_title_from_body
function
def _title_from_body(body: str) -> str

Extract title from first markdown heading, or return empty string.

Parameters

Name Type Default Description
body str
_extract_toc
function
def _extract_toc(html: str) -> tuple[TocEntry, ...]

Extract table-of-contents entries from rendered HTML headings.

Parameters

Name Type Default Description
html str
_slug_to_identifier
function
def _slug_to_identifier(s: str) -> str

Convert kebab-case (or arbitrary text) to a snake_case Python identifier.

Kida block names must be valid Python identifiers, while heading ids emitted by patitas are kebab-case (section-overview).

Parameters

Name Type Default Description
s str
_split_blocks
function
def _split_blocks(html: str) -> tuple[DocBlock, ...]

Split rendered HTML into sections at H2 (or H3 fallback) boundaries.

Content before the first heading becomes a synthesizedintroblock (depth=0, empty heading/anchor). Duplicate ids are disambiguated with a numeric suffix.

Parameters

Name Type Default Description
html str
_slug_from_path
function
def _slug_from_path(md_path: Path, content_dir: Path) -> str

Derive a URL slug from a file path relative to content_dir.

Index-like files become the parent directory slug:

content_dir/guides/getting-started.mdguides/getting-started content_dir/guides/index.mdguides content_dir/guides/_index.mdguides content_dir/guides/README.mdguides content_dir/index.mdindex content_dir/_index.mdindex

Parameters

Name Type Default Description
md_path Path
content_dir Path
parse_file
function
def parse_file(md_path: Path, content_dir: Path) -> DocPage

Parse a single markdown file into aDocPage.

Reads the file, splits frontmatter, renders markdown via MarkdownRenderer, and extracts TOC entries.

Parameters

Name Type Default Description
md_path Path
content_dir Path

View source · /home/runner/work/chirp/chirp/site/../src/chirp/docs/frontmatter.py:1