/og-card
Embed link-preview cards (OgCard) in a document — one card or a responsive grid, for external pages or mesh nodes. Covers the embed forms that actually work, how a card gets its picture and title, and the traps that make a broken card look fine (and a fine card look broken).
- Instructions: `OgCard` renders a **link-preview card** — picture, title, description, the whole card a link — for any target: an external page (its Open Graph head is fetched server-side) or a mesh node (read live off its node stream). Several targets compose into one responsive grid, so a document embeds a whole catalog with a single reference. # 1. The embed forms ``` @@("area:OgCard?urls=https://a.org/X,https://a.org/Y,https://a.org/Z") ← a responsive GRID @@("area:OgCard?url=https://a.org/Page") ← ONE external card @@("area:OgCard/Some/Node/Path") ← ONE mesh-node card ``` - **`area:OgCard`** (colon) and **`area/OgCard`** (slash) both resolve. The colon form is what live documents use. - **`?urls=` is comma-separated** and is the multi-target form. Mesh paths and external URLs can be mixed in one list. - **`?url=` (singular) never splits** — a comma in it is data. Use it for a URL that genuinely contains a comma. - A literal comma inside a URL in a `?urls=` list must be double-encoded (`%252C`), because the separator is honoured both raw (`,`) and percent-encoded (`%2C`). - Entries may be percent-encoded; plain URLs work as written. A single target renders width-bounded like a chat unfurl; two or more render as a grid of `minmax(280px, 1fr)` columns. # 2. Where a card's content comes from | Card field | External target | Mesh-node target | |---|---|---| | Title | `og:title`, else `<title>`, else the URL's **last path segment** | the node's `Name` | | Description | `og:description`, else `<meta name="description">` | the node's `Description` | | Picture | the page's declared **icon** → `og:image` → `/favicon.ico` | the node's own icon | | Link | the URL (new tab) | `/{nodePath}` | **The picture is the ICON, not the `og:image` poster.** The card's image box is a fixed 48 px square with `object-fit: cover`; a 1200×630 banner cropped into that is a meaningless sliver, while an icon is drawn for exactl…
- Auto mount: yes
- Launches sub thread: no