近期对 Drupal Canvas(曾用开发名 Experience Builder)做了一次完整调查,以下为结论存档。
一、项目概览
定位:让不懂 Drupal 开发的站点构建者在浏览器里完成整站主题化与页面搭建(最多写一点 JSX/CSS),内容编辑者可以在页面任意位置组合内容。与竞品不同,它复用 Drupal 的结构化数据、细粒度权限和内容模型,能跨渠道(coupled + headless)复用组件,并支持大规模改版、导入导出与迁移。
| 项 | 值 |
|---|---|
| 分类 | Site structure |
| 使用站点 | 14,343 |
| 创建 / 更新 | 2024-04-03(xtfer)/ 2026-05-23 |
| 最新版 | 1.12.0(2026-09-25),要求 Drupal ^11.3;1.x-dev 更新于 2026-11-03 |
| 安全策略 | 稳定版已被安全通告策略覆盖(正式项目) |
| 维护者 | effulgentsia、lauriii、tim.plunkett、jessebaker、wim leers、balintbrews |
近期版本演进:1.10 可编辑 patterns + Canvas AI 可配置(Agents & Tools 设置表单)→ 1.11 页面模板(可编辑、与主题解耦的全页布局)+ Document prop(PDF 等本地文件)→ 1.12 Brand Kit(集中管理站点颜色/字体)、组件支持 SVG 图片、编辑器导航栏改版。
二、相关模块(官方 ecosystem,共 38 个)
1. AI 能力扩展
- ai_figma:Canvas AI 对话框粘贴 Figma 链接,AI 读取设计并用本站组件/配色/字体生成页面(1,805 站点)
- canvas_builder:可视化布局/样式/动效 + AI 生成整页/区块(含 canvas_builder_ai 子模块,38 站点)
- canvas_tools:给 AI agent / 脚本提供 Tool API,用 Drush 或 MCP 程序化创建 Canvas 页面/模板(411 站点)
- ai_playwright:headless Chromium 截图 + 控制台错误,让 AI 验证自己搭的页面(4 站点)
- ai_penpot:同上思路的开源设计工具版本(Penpot)
- paragraphs_components:Paragraphs ↔ Canvas 集成 + AI 辅助(13 站点)
2. 编辑器与内容体验补丁(装机量最高、最实用)
- canvas_override:单个内容项可脱离 Content Template 自己编辑布局(2,080 站点)
- canvas_icon_picker:string prop 可视化图标选择器,基于 core Icon API(1,924 站点)
- canvas_full_html:用 Full HTML 替换 Canvas 受限文本格式(603 站点)
- canvas_field_component:字段直接拖进模板,无需映射成 prop(274 站点)
- canvas_entity_reference:prop 支持节点/术语/用户/媒体引用(257 站点)
- canvas_translate:编辑器侧边栏就地翻译面板(7,568 站点)
- canvas_a11y:编辑时实时 WCAG 检查(标题层级、alt、对比度等)
- canvas_groups:组件属性分组折叠(16 站点)
- canvas_link_autocomplete:链接自动补全加入 Canvas Page 建议
- canvas_component_migrator:站点间搬运 JS 组件与全局 CSS
- curated_colors:命名色板选择器,config 可导出
- curated_entity_block:手工挑选/排序实体的 block
3. 组件库与主题体系
- canvas_bootstrap + bootstrap_forge:Bootstrap 5 组件 + Canvas 优先 starter theme(161 站点)
- canvas_studio + canvas_studio_tailwind:Canvas 之上的"完整页面编辑器",高级组件库 + 设计控件
- canvas_tailwind:主题与 Canvas 代码组件共享一份 Tailwind 构建
- utility_components:Card / Icon / Heading / Accordion / Hero 等 UI 组件
- layout_components:Row / Grid 布局组件(取代 canvas_layouts)
- animated_sdc:拖上去就能用的动画 SDC
- charged_ui:Tailwind + PHP 编译器的 base theme,无 Node 构建链
- canvas_map、canvas_mui_button、canvas_mui_card、canvas_jumbotron:地图、Material 3、Jumbotron 等单点组件
4. 渲染与集成桥梁
- paragraph_sdc:把已有海量 Paragraphs 暴露成 SDC 给 Canvas 用(存量迁移关键,75 站点)
- canvas_extjs:接入 Vue/React/Nuxt 等外部 JS 渲染组件
- code_component:Canvas 里的 React 组件注册成 SDC,站内外通用
- sdc_entity_mapping:可复用 mapping profile 把实体数据映射到 SDC props
- dcr_renderer:从 Drupal Content Repository URL 取内容渲染(headless)
- canvas_pattern_blocks / canvas_pattern_components:pattern 暴露成 block / 一等公民组件
- lupus_decoupled_recipe_canvas:Lupus Decoupled + Canvas 的 recipe
5. 已弃用 / 占位
- canvas_layouts:官方弃用,改用 layout_components
- lupus_decoupled_canvas:已被新 recipe 取代
- steepbase:仅占位
三、几点判断
- Canvas 已"转正":1.x 有稳定发布且被安全策略覆盖,维护者是核心 committer,装机量 1.4 万站点,不再是 2024 年的实验性 Experience Builder。
- 生态短板集中在编辑器细节:装机量分布说明 canvas_override、canvas_icon_picker、canvas_full_html、canvas_field_component、canvas_entity_reference 都是"本体没做但人人都需要"的功能,正式项目几乎默认要装。
- AI 是最活跃增长点:设计稿直出(Figma/Penpot)、机器可编程(canvas_tools Tool API / MCP)、自我验证(ai_playwright)三条线已成形。
- 安全提醒:生态大量模块标注 "not covered by Drupal's security advisory policy",生产引入前要逐个核对维护状态,不少只有 alpha/beta。
调查时间:2026-11-04。数据来源:drupal.org 项目页、releases 页与 ecosystem 列表。