Web Device Markdown directive — not an AUP primitive; not a theme/site layout component.
Sample contract
| Field | Value |
|---|---|
| Purpose | Single step container inside ::::steps |
| Boundaries | Must nest under ::::steps; leaf ::step cannot hold a body |
| Author entry | :::step{title=…} nested under ::::steps |
| Surface | Web Device document (child view of steps) |
| Public status | released |
| Fallback / failure | Outside steps → no full steps chrome; wrong fence → empty body |
| Verification | Pair page steps · arc --version = 2.0.0-beta.28 |
Sample
:::step only has meaning inside ::::steps. Full fence rule and live render:
Source (must be nested):
::::steps
:::step{title="One unit, one body"}
This body is a step item. It is not a free-standing tutorial primitive.
:::
::::Rendered:
One unit, one body
This body is a step item. It is not a free-standing tutorial primitive.
See also the fuller multi-step sample on steps.
Failure and limits
| Situation | Expected result |
|---|---|
:::step without outer ::::steps | No complete steps contract |
Leaf ::step | Cannot hold a body |
Missing title | Step still may render; title chrome omitted |
Verification evidence
| Item | Value |
|---|---|
| Baseline | 2026-08-09 · arc --version → 2.0.0-beta.28 |
| Capability row | docs/aup/capability-matrix.md §6 · :::step |
| Implementation | content-reader.ts (child name step) · stepsDirectiveToAup |
| Public routes | /en/docs/web-device/markdown/step/ · /zh/docs/web-device/markdown/step/ |
| Local run | arc service start --blocklet blocklets/arcblock --port 4900 · open this page and steps |
| Accept | Nested step body renders inside steps chrome |
Related
- Markdown hub — navigation only
- Container unit: steps
- Historical multi-unit hub: markdown-steps