The Web Device content reader turns GFM tables and GitHub-style callouts in Markdown into document content. The source and result below use the same document-reading path. They are not a general AUP table or text primitive contract, and they do not imply that format: markdown inside an AUP page has the same result.
This page is a live feature guide. Unit pages: gfm-table, gfm-admonition.
Sample contract
| Field | Value |
|---|---|
| Purpose | Author static GFM tables and admonition callouts in content Markdown |
| Boundaries | Not an editable grid; not AUP table node; not a chart fallback table; no write path |
| Author entry | Pipe tables · > [!NOTE]-style blockquotes in content.md |
| Surface | Web Device document (static) |
| Public status | released |
| Fallback / failure | Unknown admonition marker → ordinary blockquote; bare marker uses locale default title |
| Verification | Routes below · arc --version = 2.0.0-beta.32 |
A GFM table
Source:
| File | Purpose | Writes data |
| --- | --- | --- |
| `content.md` | Content item | No |
| `layout.aup` | Page layout | No |Rendered:
| File | Purpose | Writes data |
|---|---|---|
content.md | Content item | No |
layout.aup | Page layout | No |
This is a Markdown table handled by the content reader (often as HTML text in the document tree). It does not turn the table into editable data, establish an AFS data source, or prove the AUP primitive table path. Do not confuse an empty chart degradation table (No data / reshape) with this author-written GFM table.
Failure and limits
| Situation | Expected result |
|---|---|
| Malformed pipes | Ordinary Markdown / broken table, not a runtime error surface |
| Empty body rows | Author content only — no automatic “No data” chrome from the chart chain |
Assuming AUP table props | Wrong surface; write AUP JSON/DSL when you need that node |
A GitHub-style callout
Source (custom title on the marker line):
> [!IMPORTANT] This is a content-file capability
> Write this kind of callout in `content.md`. The page presents what the author wrote; it does not execute an action or modify data.Rendered:
This is a content-file capability
Write this kind of callout in content.md. The page presents what the author wrote; it does not execute an action or modify data.
Bare markers (no same-line title) use the reader’s default label for the content locale. English keeps the English defaults from the text renderer; zh defaults are applied at read time:
| Marker | zh default title |
|---|---|
NOTE | 说明 |
TIP | 提示 |
IMPORTANT | 重要 |
WARNING | 警告 |
CAUTION | 注意 |
An explicit same-line title always wins over the locale default, in any locale.
Source (bare marker — label comes from locale defaults):
> [!TIP]
> Prefer a same-line custom title when the English word is not the label you want.Rendered:
Tip
Prefer a same-line custom title when the English word is not the label you want.
The current reader recognizes five markers: NOTE, TIP, IMPORTANT, WARNING, and CAUTION (case-insensitive). An unknown marker remains an ordinary blockquote instead of becoming a different callout.
Failure and limits
| Situation | Expected result |
|---|---|
[!FIXME] or other unknown marker | Plain blockquote, not a callout chrome |
| Marker not on the first line of the quote | Not recognized as admonition |
| Expecting an editor or dismiss control | Static document content only |
GFM tables and callouts in content items are static document content. To author a runtime AUP tree, keep this document-reading path separate from the target-specific primitive support that its renderer defines. For the site-facing boundary, see AUP layout boundary.
Verification evidence
| Item | Value |
|---|---|
| Baseline | 2026-08-12 · arc --version → 2.0.0-beta.32 |
| Capability row | docs/aup/capability-matrix.md (internal, non-routed) · GFM admonition · GFM table |
| Implementation | providers/runtime/web-device/src/content-reader.ts (ADMONITION_MARKER_RE, ADMONITION_LOCALIZED_LABELS); text admonition renderer |
| Unit pages | gfm-table · gfm-admonition |
| Public routes | /en/docs/web-device/markdown-gfm-callouts/ · /zh/docs/web-device/markdown-gfm-callouts/ |
| Local run | arc service start --blocklet blocklets/arcblock --port 4900 · open routes; on zh locale, bare markers show Chinese default titles |
| Accept | Source and rendered table/callout match; unknown marker stays a quote; no edit controls |