/og-card
Embed link-preview cards (OgCard) in a document — one card or a responsive grid, for external pages or mesh nodes. Read it BEFORE authoring a card — three rules prevent every empty card seen so far (use the mesh-node form for mesh targets, give the node a description, write `?` not `&`). Also 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. 🚨 DO THIS FIRST — three rules that prevent an empty card **An empty card is almost always authored, not rendered.** Every empty card seen in the wild so far came from one of these three, and all three are decided before you save the document. Work through them *before* embedding anything; §3 explains what each failure looks like on screen, but by then you are debugging instead of authoring. ### 1. Target on THIS mesh ⇒ use the mesh-node form, never the URL form ``` @@("area:OgCard/Acme/AIConsulting/FinalReport") ✅ mesh node @@("area:OgCard?url=https://this-portal/Acme/AIConsulting/FinalReport") ❌ same page, via HTTP ``` They look interchangeable and are not. The mesh-node form reads the node **off its stream**: no HTTP, no anonymous access, no cache, and it works for **private** nodes. The `?url=` form sends the portal out to fetch its own page **anonymously** — which returns the generic shell for every node that is not public, so the card is permanently empty and no amount of retrying changes it. **Reach for `?url=` / `?urls=` only for genuinely EXTERNAL pages.** Do not "publish" a private node to make its card work — that is exposing content to fix a syntax choice. Switch to the node form instead. ### 2. Give the target node a `description` — or the card renders title-only and reads as EMPTY A card's body text is the node's `Description` (mesh-node form) or `og:description` (URL form), and **nothing is synthesised from the body.** A node with a `name` and no `description` produces a card with a title, a picture, and a blank where the text belongs — which every reader reports as "the card is em…
- Auto mount: yes
- Launches sub thread: no