# Markdown table

The one Markdown structure that is data. The |---| row under the header is the signature, so nothing has to be asked.

## How it opens

Markdown table parses into the records shape — many rows of the same shape, browsed as a list with a per-row view.

Nothing is chosen by file extension alone: every adapter scores the text itself and the highest confidence wins. When two are close enough that guessing would be a coin flip, the app asks instead of picking.

- extensions · .md, .markdown
- media type · text/markdown
- shape · records
- extra diagnostics · this adapter lints beyond what parsing reports

## Fixing

Records fail one at a time, so repair does too: broken rows are grouped by cause and fixed by the group, or all at once. A whole-document pipeline is never run over this format — it would glue the records together and drop the rest.

Rows that match no pattern are counted and kept, never hidden.

## Nesting

A Markdown table value can hold another system's output — a stringified body, an escaped document. Unpack opens it in place, names the parser that opened it, and repeats until nothing parses. Pack restores the original text byte for byte rather than re-serializing from the tree.

## A sample

The document below is the fixture this adapter ships and its own tests parse — not an illustration written for this page.

```
| @timestamp | level | service | message | duration_ms |
|---|---|---|---|---|
| 2026-04-21T14:32:08Z | INFO | checkout-api | stripe.charge.completed | 88 |
| 2026-04-21T14:32:07Z | WARN | checkout-api | retry.scheduled attempt=2 | 400 |
| 2026-04-21T14:32:07Z | ERROR | checkout-api | stripe.webhook.signature_invalid | 12 |
| 2026-04-21T14:32:07Z | INFO | checkout-api | cart.items.priced items=2 | 51 |
| 2026-04-21T14:32:06Z | INFO | auth-svc | session.token.issued ttl=3600 | 9 |
| 2026-04-21T14:32:05Z | ERROR | inventory | inventory.hold.failed sku=BRD-OAK-002 | 130 |
```

six rows — the |---| line is the whole signature

---

Canonical: https://unstringify.com/docs/markdown
