Web Device Markdown directive — not an AUP primitive; not a theme/site layout component.
Sample contract
| Field | Value |
|---|---|
| Purpose | Static numbered tutorial container on document |
| Boundaries | Static only — no run button, bind, or write; outer fence deeper than nested step |
| Author entry | ::::steps wrapping :::step children |
| Surface | Web Device document (renders as view mode steps) |
| Public status | released |
| Fallback / failure | Wrong fence depth drops or misparses body; non-step children skipped |
| Verification | Routes below · arc --version = 2.0.0-beta.28 |
Sample
Outer fence needs more colons than nested containers.
Source:
::::steps
:::step{title="Define the content boundary"}
Say what the page presents, and what it does not execute.
:::
:::step{title="Place source above the result"}
Let the reader see both the Markdown and its actual output.
:::
::::Rendered:
Define the content boundary
Say what the page presents, and what it does not execute.
Place source above the result
Let the reader see both the Markdown and its actual output.
Failure and limits
| Situation | Expected result |
|---|---|
| Outer fence too shallow | Structure misread; steps may drop |
:::step outside ::::steps | No full steps chrome contract on this page |
| Expecting executable run buttons | Out of contract |
Verification evidence
| Item | Value |
|---|---|
| Baseline | 2026-08-09 · arc --version → 2.0.0-beta.28 |
| Capability row | docs/aup/capability-matrix.md §6 · ::::steps |
| Implementation | content-reader.ts · stepsDirectiveToAup · renderer/primitives/view.ts |
| Public routes | /en/docs/web-device/markdown/steps/ · /zh/docs/web-device/markdown/steps/ |
| Local run | arc service start --blocklet blocklets/arcblock --port 4900 · open routes |
| Accept | Numbered static steps render; no execution controls |
Related
- Markdown hub — navigation only
- Pair unit: step
- AUP
viewprimitive - Historical multi-unit hub: markdown-steps