Content Components
Changelog htmlContent and Help Center article body accept standard HTML plus a small set of Featurebase custom block tags. Anything outside the allowlist is stripped on render.
Custom blocks (HTML only — markdown input is converted to plain HTML)
| Block | HTML |
|---|---|
| Callout | <callout-component color="Accent">…blocks…</callout-component> — color is Accent (default), a preset name (Red, Blue, Green, Yellow, Purple, Pink, Orange, Gray), or a hex (#rrggbb) |
| Multi-language code block | <multicode-component data='[{"id":"<uuid>","name":"Tab","value":"<code>","language":"javascript"}]' activecode="<uuid>"></multicode-component> — data is a JSON array of {id,name,value,language}; activecode must equal one of the entry IDs; language is a lowlight common key (javascript, typescript, python, bash, json, etc.) |
| Single code block | <pre><code class="language-typescript">…</code></pre> |
| Accordion | <details class="details"><summary>Title</summary><div>…blocks…</div></details> |
| Columns | <div data-type="columns" class="layout-two-column"><div data-type="column" data-position="left">…</div><div data-type="column" data-position="right">…</div></div> — class ∈ layout-two-column, layout-sidebar-left, layout-sidebar-right |
| Quote with caption | <figure data-type="blockquoteFigure"><div><blockquote>…</blockquote><figcaption>…</figcaption></div></figure> |
| File attachment | <file-preview-component src="<https url>" data-featurebase-content-filename="…" data-featurebase-content-filesize="<bytes>" data-featurebase-content-filetype="<mime>"></file-preview-component> |
| Image / video | <img src="…" alt="…" data-width="100%" data-align="center" data-caption="…"> (or <video>) — data-align ∈ `left |
| Embed | <iframe src="…" allow="…" allowfullscreen frameborder="0"></iframe> (YouTube, Loom, Descript, etc.) |
| Task list | <ul data-type="taskList"><li data-type="taskItem" data-checked="false"><p>…</p></li></ul> |
Standard HTML (<p>, <h1>–<h6>, <strong>, <em>, <u>, <s>, <a>, <ul>, <ol>, <li>, <table>, <hr>, <mark>, inline <code>) is also accepted.
Markdown input
markdownContent (changelogs) and body with formatter:"default" (articles) accept CommonMark + GFM. Markdown does not produce custom blocks — to use callouts, multi-code, accordions, or columns send HTML instead. For articles, formatter:"ai" runs the input through Featurebase AI to convert arbitrary markdown / HTML / docs from other tools into our custom block format.
Article formatter options
raw— stores Featurebase-canonical HTML verbatim after an XSS-safe allowlist sanitization. Formatting (text alignment, colors, classes, ids, blank-line<p></p>spacers, accordions, columns, tablecolwidth) is preserved byte-for-byte. Userawwhenever you are re-saving abodyyou previously read from this API — it is the only formatter that round-trips our own HTML losslessly.default— applies lossy cleanup meant for foreign HTML/markdown (strips inline styles, most classes, blank-line spacers). Do not use it to re-save an existing article body.ai— converts arbitrary foreign markdown / HTML / docs into our custom block format via Featurebase AI. For import from other tools, not for re-saving canonical HTML.