SuperAPI AI 工具集

cloudcannon-bookshop

前端与建站

查看项目

更新于 10-16 17:08

技能介绍

用途

Bookshop 是 CloudCannon 早期的组件系统,由三部分组成:组件库、一个生成编辑器结构的构建步骤,以及一个在可视化编辑器中重新渲染组件的实时编辑引擎。其后继方案是可编辑区域(editable regions)。本技能覆盖三个方向的工作:阅读 Bookshop 站点、维持 Bookshop 站点继续运行,以及将站点迁离 Bookshop。

何时使用

  • 站点出现「检测 Bookshop」中列出的任一信号时
  • 需要在 Bookshop 站点上添加或修改组件时
  • 需要将 Bookshop 站点迁移到可编辑区域时
  • Bookshop 实时编辑、结构或构建出现异常时

何时不使用

  • 站点没有任何 Bookshop 信号 —— 应改用 cloudcannon-visual-editing。不得向没有 Bookshop 的站点添加 Bookshop;新组件编辑一律使用可编辑区域。
  • Bookshop 已移除、仅剩区域 —— 属于 cloudcannon-visual-editing 的范畴,包括其故障排查。
  • 与组件无关的配置 —— 属于 cloudcannon-configuration。

检测 Bookshop

出现以下任一信号即表示站点使用了 Bookshop:

  • bookshop/bookshop.config.{js,cjs} 文件位于 component-library/(Hugo、Jekyll、Eleventy)或 src/(Astro)
  • 每个组件旁的 *.bookshop.{yml,yaml,toml,json,js,cjs} 文件,位于 component-library/components/ 或 src/components/
  • package.json 的 dependencies 或 devDependencies 中存在 @bookshop/* 包
  • .cloudcannon/postbuild 中存在 npx @bookshop/generate
  • Front matter(通常在 content_blocks 下,有时也在组件代码中)存在 _bookshop_name 键
  • SSG 的 Bookshop 插件、模块或集成,及其模板调用(见站点配置与布局,参考该 SSG 的 bookshop.md)

SSG 支持与迁移判断

迁移的条件是:可编辑区域能够重新渲染该 SSG 的组件。否则站点应继续留在 Bookshop。

  • Astro:@bookshop/astro-engine,可迁移
  • Hugo:@bookshop/hugo-engine,可迁移
  • Eleventy:@bookshop/eleventy-engine,可迁移
  • Jekyll:@bookshop/jekyll-engine,继续留在 Bookshop —— 可编辑区域目前尚无 Jekyll 组件支持

维护或迁移的选择依据用户意图:

  • 用户只想添加或修改组件:走 maintaining.md,不要擅自启动迁移
  • 用户希望在标记为「可迁移」的 SSG 上离开 Bookshop:走 migrating-to-editable-regions.md
  • 用户希望在标记为「保留」的 SSG 上离开 Bookshop:说明目前尚不可行,建议 maintaining.md
  • 站点正被迁移到 CloudCannon(migrate-to-cloudcannon):在该迁移流程的阶段内执行迁移
  • 意图不明确:先询问。迁移会重写每个组件与页面布局。

内容结构

  • SKILL.md:检测、SSG 支持、路由
  • bookshop.md:Bookshop 工作原理 —— 库布局、*.bookshop.yml、@bookshop/generate、实时编辑、绑定
  • maintaining.md:修改继续留在 Bookshop 的站点
  • migrating-to-editable-regions.md:迁移步骤顺序、从 *.bookshop.yml 生成结构、_bookshop_name 重命名、移除 Bookshop
  • troubleshooting.md:症状 → 原因 → 修复,覆盖 Bookshop 站点及迁移过程中的问题

SSG 专属文档(Astro、Hugo、Eleventy 各有 overview.md)给出对应 SSG 的阅读顺序。

相关技能:迁移期间阅读 cloudcannon-visual-editing(区域、普查与完整性检查清单);阅读 cloudcannon-configuration(编写与校验替代自动生成结构的 _structures);使用 cloudcannon-dev-server(让用户在本地编辑器中试用迁移后的站点)。

常见错误

  • 「这是 Bookshop 站点,所以我把它迁移掉」:只有用户明确要求且 SSG 标记为可迁移时才迁移。Bookshop 站点上的组件修改就是 Bookshop 修改。
  • 「这个新组件可以用可编辑区域」:在继续留在 Bookshop 的站点上,新组件是 Bookshop 组件,见 maintaining.md 的「添加组件」一节。