Full markdown accessibility is four mechanisms working together. Each has a concrete pattern.
1. The twin pattern (template pages)
HTML body:
{{ row.content | markdownify }}
Markdown body:
{{ row.content }}
Same source, two renderings. The .md URL and Accept: text/markdown come free.
2. The transcription pattern (literal pages)
For pages authored directly (landing, about), write both bodies. The markdown version strips nav/chrome but preserves headings, links, and reading order. A good test: read the markdown aloud — does it stand alone as a document?
3. The index pattern (llms.txt)
Strict spec shape:
# PageWeave Design
> A working library of styles, themes, components, skills and prompts
> for agentic web development. Fully accessible via markdown.
Content is markdown-first: append .md to any URL below.
## Styles
- [Brutalist](https://site/styles/brutalist.md): raw typography, exposed grids
- [Editorial](https://site/styles/editorial.md): serif voices, hairline rules
## Optional
- [Changelog](https://site/changelog.md): release notes
H1 → blockquote → prose → H2 file-lists → Optional last. Keep it context-small.
4. The capability pattern (agenticweb.md)
YAML-flavored index of what the site OFFERS machines: content areas, JSON endpoints (/t/{table_id}), update cadence, contact paths.
Verification loop
curl -s -H "Accept: text/markdown" https://site/page | head -20 # clean markdown?
curl -s https://site/page.md | md5 # identical to above?
curl -s https://site/llms.txt # links resolve?
Final test: give an agent ONLY /llms.txt and ask three real questions about your content. Two hops to any answer or the index needs work.