惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
G
Google Developers Blog
J
Java Code Geeks
C
Check Point Blog
Last Week in AI
Last Week in AI
Microsoft Azure Blog
Microsoft Azure Blog
Blog — PlanetScale
Blog — PlanetScale
月光博客
月光博客
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
L
LangChain Blog
有赞技术团队
有赞技术团队
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 司徒正美
IT之家
IT之家
Martin Fowler
Martin Fowler
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Tailwind CSS Blog
U
Unit 42
Jina AI
Jina AI
Microsoft Security Blog
Microsoft Security Blog
I
InfoQ

CloudCannon Blog

Building with AI: Git-based vs headless vs traditional CMS CloudCannon + Astro: performance meets powerful content management Introducing the Astro Component Starter Introducing Jetstream — built on the Astro Component Starter Why we switched to the system font stack Redesigning CloudCannon’s docs with Diátaxis, Lume, and Pagefind Make content editing more visual: upgraded Editable Regions How Configuration Mode makes building editing interfaces easy Your hosting just got an upgrade (and a price cut) Custom testing domains for professional branding Keep your content consistent with input validation Managing multilingual content in CloudCannon Simplify team publishing with conflict resolution and domain tools Open Beta: Publishing Conflict Resolution Getting started with CloudCannon and Astro: Bookshop, components, and live editing Welcome to the CloudCannon Community! Omnichannel delivery is just marketing spin from API-based CMS companies Managing digital assets in CloudCannon: a guide to smart asset storage Understanding CloudCannon's branching workflows and Projects: a complete guide What is a static website? CloudCannon’s 2024 wrapped Getting started with CloudCannon and Astro: WYSIWYG blogging Jamstack vs. WordPress: reasons to make the change The top five static site generators for 2025 (and when to use them!) Free Jekyll themes for 2025: ten great community options Eleventy (11ty) vs. Hugo How to set up WYSIWYG editing with MkDocs Material The rise of static-first websites: why major brands are making the switch Watching your Core Web Vitals on Jamstack Understanding the difference between static, dynamic, and hybrid websites
Getting started with CloudCannon and Astro: Snippets and ...
2025-02-21 · via CloudCannon Blog

In my previous article and video, we explored the initial setup of an Astro site using CloudCannon, working with the BigSpring Light Astro theme and configuring the WYSIWYG Content Editor. We set up schemas for blog posts and learned how to manage content through CloudCannon’s intuitive interface. Now, let’s take our implementation further by adding advanced features and improving our site’s structure.

We'll build on that foundation by implementing Snippets for complex content components and reorganizing our Collections for better maintainability. We’ll also explore how to make your theme more flexible and editor-friendly while maintaining the power of Git-based content management.

Setting up proper image paths Direct link to this section

First, let’s fix our image paths configuration. Instead of using the default public/uploads directory, we’ll set our image path to public/images in the global site config. This change requires:

  1. Updating the path in the config file
  2. Moving existing images to the new directory
  3. Updating image references in content files

To ensure consistent dependency management across the project, we also removed package-lock.json from our .gitignore file. This change helps guarantee that all developers working on the project use the same package versions.

Refactoring Collections Direct link to this section

To improve our content organization, we consolidated several individual Collections into a single pages Collection. This refactoring involved:

  1. Moving content files from separate Collections (contact, pricing, etc.) into the pages Collection
  2. Updating the schema in config.ts to accommodate all page types
  3. Creating a union type to handle both regular pages and the homepage
  4. Updating router implementations to reflect the new Collection structure

The new structure makes the content more manageable while maintaining the flexibility to handle different page types.

Implementing Snippets with Bookshop Direct link to this section

To enable complex HTML components within markdown content, we replaced auto-import with Bookshop, CloudCannon’s component building system. Here’s how we set it up:

  1. Removed the auto-import integration
  2. Installed Bookshop and its dependencies
  3. Created the necessary Bookshop configuration
  4. Added a post-build script to generate Bookshop data
  5. Moved components to the source directory and added shortcodes as a subdirectory for better organization

Because Astro requires MDX, we also converted relevant .md files to .mdx to support component usage within content files.

Configuring Snippets in CloudCannon Direct link to this section

To make Snippets editable in the CloudCannon interface, we added Snippet configurations to the CloudCannon config file. For example, we created a button Snippet with:

  • Smart button icon for visual identification
  • Configurable properties (label, link, style, rel)
  • Input types (text, url, select) for each property
  • Predefined options for style (outline, primary) and rel (follow, nofollow)

This configuration allows content editors to easily add and customize buttons through the Content Editor, expanding upon the editing capabilities we set up in our previous tutorial.

Next steps Direct link to this section

In upcoming videos and articles, I’ll cover:

  • Creating reusable components and implementing live editing for landing pages
  • Setting up optimized images with srcset
  • Configuring advanced input types for objects and arrays

This refactoring and enhancement work builds upon our initial setup to create a more robust and user-friendly Astro theme in CloudCannon. By combining the power of Git-based content management with features like Snippets and organized Collections, we’re creating a more efficient workflow for both developers and content editors.