Add internal Markdown parsing

This commit is contained in:
2026-10-07 23:07:50 +00:00
parent f80970a9d4
commit b3b959ce77
9 changed files with 359 additions and 8 deletions

View File

@@ -45,6 +45,15 @@ matching, then returns the first oversized path with `FileSizeMeasurement`.
lazily, and resolves destinations without consulting the worktree or
neighboring files.
The internal Markdown parser uses Goldmark to record inline, reference, and
autolinks, images, titles, and their source use sites, and to build heading
anchors from visible AST text. It supports ATX and Setext headings, decodes
Markdown text through the parser, and assigns collision-free numeric suffixes
to repeated anchors. Link locations use one-based line and byte-column values.
A per-path cache retains the parsed records and anchors for each candidate
document. The parser remains internal; destination resolution and check selection
are tracked in the [implementation plan](../roadmap/implementation.md).
Committed-tree metadata and blob reads disable lazy fetching and Git transports
for those child commands. Missing local objects produce inspection errors;
source preparation retains its separate network-capable operations. See Git's
@@ -117,6 +126,6 @@ symlink expansion detects cycles, and traversal honors cancellation. Absolute
destinations and symlink targets within the repository directory map back to
candidate-relative paths; existence still comes from committed entries.
The [Markdown roadmap](../roadmap/v0.2.0.md#8-offer-offline-markdown-link-validation)
owns proposed link syntax, anchors, diagnostics, and boundary policy. This
foundation provides committed-file and destination-resolution primitives.
The [implementation plan](../roadmap/implementation.md) owns Markdown
destination checking, diagnostics, and boundary policy. The committed-file and
destination-resolution primitives are available for that later integration.