Skip to content

feat(render): native link rewriting .md/.textile/.cook → .html (Phase 6 S3, #109) - #113

Merged
drawmeanelephant merged 1 commit into
mainfrom
feat/render-rewrite-s3
Aug 21, 2026
Merged

drawmeanelephant merged 1 commit into
mainfrom
feat/render-rewrite-s3

Conversation

@drawmeanelephant

Copy link
Copy Markdown
Owner

Closes #109

Phase 6 S3 — oliver render --from <markdown|textile|cooklang> [--to xhtml] rewrites internal href/src .md/.textile/.cook → .html at AST level.

Scope (contract oliver-contract.md:160 + rc-oliver-adapter.sh:77-89,288-353):

  • src/rewrite.zigisExternal (:// + mailto:), stripWrappers (<>/%3C/&lt;), rewriteUrl (suffix splice before ?|#|$, .md→.textile→.cook order, arena-owned), rewriteDocument (walk document.Document leaves .link.href/.image.src, not html_block/raw_html).
  • src/main.zig:renderWithDiag — post-oliver.parse, pre-oliver.html.render (html + xhtml).

Harness: printf '[x](foo.md)' | oliver render --from markdown | grep foo.html (+ .textile/.cook, angle+fragment, query+fragment, external/mailto: skipped), ugly-edge-case.md 8 checks + contract-inline.md + textile/cook sibling; html_block/raw_html left verbatim.

Verification: zig build test green, zig build cooklang-conformance 60/60, manual probes passed.

…e 6 S3)

- adds src/rewrite.zig with isExternal/stripWrappers/rewriteUrl/rewriteDocument (AST walk over .link.href/.image.src, query/fragment preserved, <>/%3C/&lt; stripped, external :// and mailto: skipped)
- wires in src/main.zig:renderWithDiag:12 after oliver.parse before html.render (html+xhtml)
- covers 8 ugly-edge-case + contract-inline + textile/cook sibling; leaves html_block/raw_html verbatim (not regexed)
- fixes #109
@drawmeanelephant
drawmeanelephant merged commit dcfd85e into main Aug 21, 2026
3 checks passed
@drawmeanelephant
drawmeanelephant deleted the feat/render-rewrite-s3 branch August 21, 2026 17:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: oliver render native link rewriting .md/.textile/.cook → .html (Phase 6 S3)

1 participant