Snippets let editors insert and edit complex markup (components, shortcodes, embeds) inside CloudCannon's rich text Content Editor. This skill covers both the SSG layer (how components are imported/built) and the CloudCannon layer (_snippets config that teaches the editor the syntax).
When to use
- Adding snippet support to a new or existing CloudCannon site
- Configuring MDX components for the Content Editor
- Adding inline HTML snippets (figure, video, details) to markdown content
- Debugging snippet parsing, round-trip, or toolbar issues
When not to use
- The component should be a page-builder block, not inline content — editors pick blocks from a structure, not from the rich text toolbar. See
cloudcannon-configurationand the migration skill's page-building guide. - Making an existing rendered element editable in place — that is
cloudcannon-visual-editing. Snippets insert new markup; editable regions edit markup already on the page. - Plain markdown content with no components or inline HTML — no snippet configuration is needed
Contents
| Doc | When to read |
|---|---|
| snippets.md | Start here. Overview of both layers, configuration hierarchy, which approach to use, snippet properties, toolbar setup, raw HTML snippets in .md files |
| template-based.md | Component syntax matches a built-in template (most common path) |
| raw.md | Component needs custom syntax (e.g. client:load, non-standard attributes) |
| built-in-templates.md | Understanding built-in MDX templates, the import bundle, parser internals |
| gotchas.md | Preventative rules — the pitfalls and their workarounds |
| troubleshooting.md | Symptom index — start here when something is already broken, it routes to the rule |
SSG-specific:
| SSG | Doc |
|---|---|
| Astro | astro/overview.md — MDX stack, astro-auto-import, when to use MDX vs raw |
Quick decision
| Case | Approach |
|---|---|
| Component syntax matches a built-in template | Template-based — see template-based.md |
| Extra syntax, SSG directives, custom parsing | Raw — see raw.md |
Inline HTML in .md (<figure>, <video>) |
Raw snippets — see snippets.md § Raw snippets for inline HTML |
Most setups use template-based for simple components and raw for anything with SSG-specific directives.
Checklist
Read this before starting and verify every item when done.
- Every component used in content files has a
_snippetsentry -
_editablesincludessnippet: trueon relevant content blocks - Each snippet round-trips correctly (insert via editor, save, reopen — markup unchanged)
-
_inputsare configured for snippet fields (image fields gettype: image, etc.) - Snippet previews are configured (
view: galleryfor image-bearing snippets) -
picker_previewuses static values (notkey:lookups, which don't resolve in picker context)
Common mistakes
| Excuse | Reality |
|---|---|
| "The built-in templates handle this" | Verify the round-trip. Built-in templates have known edge cases — see gotchas.md. |
| "I'll configure the snippet toolbar later" | No toolbar means editors can't insert snippets. Add snippet: true to _editables now. |
| "This component is too niche for a snippet" | If editors encounter it in content, they need to be able to edit it. Configure it. |
| "Import statements in content are fine" | Use auto-import (Astro: astro-auto-import) to keep imports out of content files. |
"I can use _snippets_imports for this" |
Don't. It loads catchall matchers that can match incorrectly. Write explicit _snippets entries. |
"I configured _snippets, snippets are done" |
Without astro-auto-import wired in astro.config.mjs AND the import lines removed from MDX files, editors still see raw import statements at the top of MDX content. All four pipeline steps are required — see astro/overview.md § MDX setup pipeline. |
| "Inline image grid in MDX is fine as raw HTML" | Editors can't safely edit raw <div class="grid"> + <Image> blocks. Extract to a self-closing <Gallery images={[{src, alt}, ...]} /> component (auto-imported) with a matching _snippets entry — images as type: array with nested images[*].src: type: image. See cc-friendly-conventions.md § Image galleries in MDX content. |