mcpField
C
cloudcannon-visual-editing

cloudcannon-visual-editing

github.com/cloudcannonDevelopment9213 installsUpdated 2d ago
Repository

About cloudcannon-visual-editing

A skill for developers integrating editable regions with CloudCannon’s Visual Editor. It covers text, image, array, and component editing, with guidance for static site generators and frameworks, plus implementation checklists and troubleshooting.

Key features

  1. 01Text, image, array, and component regions
  2. 02CloudCannon integration setup guidance
  3. 03Astro, Hugo, Eleventy, and Next.js guides
  4. 04React, Vue, and Svelte component references
  5. 05Page census and completeness checks
  6. 06Editable-region troubleshooting

Use cases

  1. 01Add Visual Editor support to a site
  2. 02Make page sections editable with live re-rendering
  3. 03Audit editable regions in shared templates
  4. 04Troubleshoot regions that fail to appear or update

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/cloudcannon/agent-skills --skill cloudcannon-visual-editing

After installing, type/cloudcannon-visual-editingin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

editable-regions-internals.md
editable-regions.md
troubleshooting.md
visual-editing-reference.md
visual-editing.md
astro/
overview.md
troubleshooting.md
visual-editing-reference.md
visual-editing.md
eleventy/
overview.md
troubleshooting.md
visual-editing-reference.md
visual-editing.md
hugo/
overview.md
troubleshooting.md
visual-editing-reference.md
visual-editing.md
nextjs/
overview.md
troubleshooting.md
visual-editing-reference.md
visual-editing.md
react/
visual-editing-reference.md
scripts/
setup-editable-regions-astro.sh
svelte/
visual-editing-reference.md
vue/
visual-editing-reference.md

Details

From the project README

CloudCannon Visual Editing

@cloudcannon/editable-regions makes page elements interactive in CloudCannon's Visual Editor. This skill covers the editable regions API, integration setup, and SSG-specific patterns for wiring up text, image, array, and component editables.

When to use

  • Adding Visual Editor support to a new or existing CloudCannon site
  • Making page sections editable (text, images, arrays, components)
  • Setting up component re-rendering for live preview
  • Debugging editable regions that aren't appearing or updating
  • Adding editable regions to shared partials backed by data files

When not to use

  • The field has no _inputs entry or the collection is unconfigured — configure it first with cloudcannon-configuration. An editable region with no matching Input errors in the editor.
  • Editors need to insert new markup inside rich text — that is cloudcannon-snippets. Editable regions edit what is already rendered.
  • The site uses Bookshop (*.bookshop.yml files, @bookshop/* packages, _bookshop_name keys) — start at cloudcannon-bookshop. It routes back here for the regions.
  • A page will not open in the Visual Editor at all — that is usually a wrong collection url, not a region problem. See cloudcannon-configuration/collection-urls.md.

Contents

DocWhen to read
editable-regions.mdStart here. Region types, the attribute reference, custom-element equivalents
visual-editing.mdSection census, completeness checklist, pre-handoff sweep — every SSG
visual-editing-reference.mdOn demand. Data-prop paths, arrays, page builders, components, source editables
react/visual-editing-reference.mdReact components, in any SSG — registration, the EditableRegions export, JSX markup, rich text hosts, blueprints
vue/visual-editing-reference.mdVue components, in any SSG — registration, the EditableRegions export
svelte/visual-editing-reference.mdSvelte components, in any SSG — registration, the EditableRegions export
editable-regions-internals.mdThe Visual Editor JavaScript API; lifecycle traces and quirks when debugging
troubleshooting.mdSymptom → fix, when regions do not appear, update, or write where expected

SSG-specific:

Enter through the SSG's overview.md; it gives the reading order for that SSG's files. A site that renders React, Vue or Svelte components also reads that framework's visual-editing-reference.md above, where the SSG's reading order lists it.

SSGDocPurpose
Astroastro/overview.mdStart here for Astro — reading order and what each file covers
Astroastro/visual-editing.mdSetup workflow, infrastructure checklist, Astro checklist items
Astroastro/visual-editing-reference.mdAstro's deltas from the generic pattern reference (read on demand)
Astroastro/troubleshooting.mdAstro-specific symptom → fix
Hugohugo/overview.mdStart here for Hugo — reading order and what each file covers
Hugohugo/visual-editing.mdModule setup, infrastructure checklist, Hugo checklist items, local checks
Hugohugo/visual-editing-reference.mdHugo's deltas: partials-only re-render, ENV_CLIENT, what the editor's Hugo has
Hugohugo/troubleshooting.mdHugo-specific symptom → fix
Eleventyeleventy/overview.mdStart here for Eleventy — Liquid or Nunjucks path, reading order
Eleventyeleventy/visual-editing.mdPlugin setup per path, infrastructure checklist, Eleventy checklist items, local checks
Eleventyeleventy/visual-editing-reference.mdEleventy's deltas: includes as components, the config in the browser, Nunjucks sites
Eleventyeleventy/troubleshooting.mdEleventy-specific symptom → fix
Next.jsnextjs/overview.mdStart here for Next.js — the EditableRegions root, reading order
Next.jsnextjs/visual-editing.mdLayout root, gated editor loader, component map, infrastructure checklist, Next.js checklist items
Next.jsnextjs/visual-editing-reference.mdNext.js's deltas: client-safe registered components, router hooks, MDX bodies
Next.jsnextjs/troubleshooting.mdNext.js-specific symptom → fix

Scripts:

ScriptPurpose
scripts/setup-editable-regions-astro.shAstro only. Installs package, wires Astro integration, creates registerComponents.ts stub. Hugo, Eleventy and Next.js need no script — see their visual-editing.md

Other skills:

SkillWhen to read
make-site-multilingualThe site is multilingual. Translation keys (data-rosey) must sit on region hosts rather than inside them, and component regions need explicit key passthrough
cloudcannon-dev-serverThe regions are written and the user needs to try them. Starts a local CloudCannon that rebuilds as they edit

Quick reference

Region typeUse forKey attributes
textInline rich textdata-editable="text" data-prop data-type
imageImage pickerdata-editable="image" data-prop (or data-prop-src/data-prop-alt)
arrayList CRUDdata-editable="array" data-prop on container
array-itemEach list itemdata-editable="array-item" on each child
componentRe-rendering sectionsdata-editable="component" data-component data-prop
sourceHardcoded text in templatesdata-editable="source" data-path data-key

Rule of thumb: Use component when a section has conditional elements, style bindings, or derived content. Nest primitives (text, image, array) inside components for inline editing.

Workflow

  1. Setup — Install and wire the integration per the SSG's visual-editing.md (Astro: setup script + conditional registerComponents import; Hugo: module import + editable-regions partial; Eleventy: plugin + conditional register-components.js import on Liquid sites, nothing on Nunjucks sites; Next.js: EditableRegions root in app/layout.tsx or pages/_app + gated registerComponents import)
  2. Census — Document every visible section on every key page with treatment decisions (visual-editing.md § Section census)
  3. Implement — Work through sections, adding editable attributes per the census
  4. Verify — Run the completeness checklist in visual-editing.md, then the SSG's extra items

Checklist reinforcement

The SSG-specific workflow docs contain detailed completeness checklists. These are not optional.

  • Read the checklist BEFORE starting so you know what to aim for
  • You are not done until every checklist item is verified
  • Every section in the census must have editable regions OR a documented sidebar-only justification with a specific technical reason
  • Don't mark arrays as done without nested editables on their items — CRUD controls alone are not sufficient

Common mistakes

ExcuseReality
"Text editables are enough for this page"Check images, arrays, and components too. Text-only is a half-finished job.
"This component is too complex for editable regions"If it renders data from a content collection, it should be editable. Simplify the component or wrap it in editable-component for sidebar re-rendering.
"The footer/nav doesn't need editables"Shared partials need data-file-backed editables. Every visible section needs a treatment.
"Array items just need add/remove controls"Without nested text/image editables on items, editors can't edit field values inline.
"I'll register components later"Components the integration can't resolve can't re-render. Wire them as you go (Astro: register; Hugo: make it a partial; Eleventy: make it a Liquid include; Next.js: add it to componentMap.ts).
"Source editables aren't needed — this text rarely changes"If it's visible, it should be editable -- but the mechanism depends on the page. Data file for shared UI; for page text, see visual-editing-reference.md § When to use source editables.
"I'll source-editable any hardcoded string on a page"Page builder is the default; source editables are the exception, for one-off pages whose structure stays with the developer. If editors need to add, remove or reorder sections, use a page builder. See visual-editing-reference.md § When to use source editables.

Comments

Markdown supported