> ## Documentation Index
> Fetch the complete documentation index at: https://docs.weelkit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Semantic HTML content

> The canonical body contract used by Weelkit publishing integrations.

Weelkit publishes a sanitized semantic HTML **fragment** in `contentHtml`. It is
not a complete HTML document and it is not Markdown. The versioned semantic
catalog it follows is published as [`canonical-semantic-catalog.v3.json`](https://docs.weelkit.com/api-reference/canonical-semantic-catalog.v3.json).

## Supported content

The launch vocabulary includes paragraphs, headings, emphasis and strong text,
links, lists, line breaks, quotations, code blocks, tables, figures and images,
audio, video, and safe source elements. Images use one shared semantic type for
inline, cover, and Open Graph usage profiles. Image properties can include
asset identity, URL, alternative text, title, caption, dimensions, and MIME
type when the active contract enables them. Image description is a distinct
metadata property and is preserved only where the destination supports it.

A quotation keeps its source URL in the standard `cite` attribute and visible
attribution in a child `<footer>`. These are different values: provider
serializers may transform the visible footer to an equivalent native citation
element, but must not collapse it into the source URL.

Scripts, event-handler attributes, unsafe URL schemes, arbitrary styles,
unrestricted iframes, and unknown elements or properties are rejected. A
destination may serialize a supported semantic value natively, as a structured
value. If the destination cannot preserve it, the send stops with an explicit
unsupported-content reason before anything is written.

## Example

```json theme={null}
{
  "title": "A canonical article",
  "contentHtml": "<h2>Overview</h2><p>Weelkit keeps <strong>meaning</strong> separate from provider markup.</p><blockquote><p>One body, one contract.</p></blockquote>",
  "metaTitle": "A canonical article",
  "metaDescription": "A semantic HTML article fragment."
}
```

Use `contentHtml` for webhook and Custom API payloads. Weelkit never sends a
parallel `contentMarkdown` field.

## Article size

The saved body supports up to 8,192 semantic HTML elements and 8 MiB of UTF-8 HTML.
Inline elements count too, so this is not a paragraph limit. Nesting is limited
to 32 levels. An article over a limit stays **Not saved**; shorten it before sending.

## Provider behavior

Each destination stores the content in its own native form. See
[How each destination behaves](https://docs.weelkit.com/integrations/provider-behavior.md) for details.

| Destination | Body representation | Media and structured values |
| - | - | - |
| Ghost | Canonical HTML preserved in an HTML card | Mapped feature-image and metadata fields are separate; inline images keep their source URLs. |
| Self-hosted WordPress | WordPress blocks and post fields | Images are uploaded to the media library with their metadata through the Weelkit Plugin. |
| WordPress.com | WordPress blocks on the chosen site | Media and fields come from that site, separately from self-hosted WordPress. |
| Sanity | Schema-native Portable Text, with a declared HTML object for otherwise unsupported blocks | Native fields/assets require the discovered schema; HTML objects need a matching website renderer. See [Sanity setup](https://docs.weelkit.com/integrations/sanity/setup.md#preserve-content-your-schema-cannot-express). |
| Custom API | Semantic HTML or structured fields, as the manifest declares | Fields and operations outside the manifest are rejected. Media isn't uploaded: images must be publicly reachable URLs. |
| API webhook | Versioned signed canonical HTML envelope | Delivery is durable, idempotent, retried, and receipt-driven. |

A valid credential doesn't by itself make a destination ready: the mapping
must be saved and a test draft verified first.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.