EmDash 介绍

本页内容

EmDash 是一个 Astro 原生内容管理系统。它将熟悉的 CMS 模式——集合、分类、菜单、小部件和精致的管理界面——直接带入您的 Astro 站点,并提供完整的 TypeScript 支持和可移植部署。

EmDash 是什么

EmDash 是专为 Astro 构建的 CMS。它使用 Astro 6 的实时内容集合在运行时提供内容,因此编辑会立即显示。内容存储在 SQL 数据库中——SQLite、libSQL、Cloudflare D1 或 PostgreSQL——媒体存储在 S3 兼容的存储中(R2 或本地文件系统)。

主要特点:

  • 可视化内容建模 — 从管理界面定义和更改集合和字段;更改立即生效。
  • 实时集合 — 内容在运行时提供,因此编辑会立即显示。
  • 插件系统 — 受 WordPress 启发的钩子、存储、设置和管理界面扩展。
  • 云可移植 — 在 Cloudflare(Workers + D1 + R2)或 Node.js 上运行,支持 SQLite、libSQL 或 PostgreSQL 以及任何 S3 兼容的存储。

EmDash 不是什么

  • 不是无头 CMS — EmDash 与 Astro 紧密集成并在同一部署中运行,而不是作为通过 API 调用的独立服务。
  • 不兼容 WordPress — 它不运行 PHP 或 WordPress 插件。WordPress 内容和概念迁移到 EmDash 等效物。
  • 不是页面构建器 — EmDash 管理结构化内容。使用 Astro 组件构建视觉布局。

EmDash 适合谁

代理开发者

使用可重用的插件和主题快速搭建客户站点。插件在隔离的上下文中运行, 具有显式 API。

独立开发者

内容管理是 Astro 站点的一部分,作为一个项目部署和管理。

内容编辑

在管理面板中创建和编辑内容。

WordPress 用户

内容和插件的迁移路径。现代工具,熟悉的概念。

架构一览

下图显示了 EmDash 如何位于 Astro 站点内,将内容引擎、管理面板和插件连接到数据层。

┌─────────────────────────────────────────────────────────────┐
│                      Your Astro Site                        │
│                                                             │
│  ┌───────────────────────────────────────────────────────┐  │
│  │                 EmDash Integration                  │  │
│  │                                                       │  │
│  │  ┌─────────────┐  ┌─────────────┐  ┌──────────────┐   │  │
│  │  │  Content    │  │   Admin     │  │   Plugins    │   │  │
│  │  │  Engine     │  │   Panel     │  │              │   │  │
│  │  └─────────────┘  └─────────────┘  └──────────────┘   │  │
│  │                                                       │  │
│  │  ┌───────────────────────────────────────────────────┐│  │
│  │  │                  Data Layer                       ││  │
│  │  │Database (SQLite/libSQL/D1/Postgres) + media store ││  │
│  │  └───────────────────────────────────────────────────┘│  │
│  └───────────────────────────────────────────────────────┘  │
│                                                             │
│  ┌───────────────────────────────────────────────────────┐  │
│  │                   Astro Framework                     │  │
│  │        Live Collections • Sessions • Middleware       │  │
│  └───────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────┘

核心概念

这些是整个文档中使用的关键概念:

  • Collections(集合) — 在数据库中定义的内容类型(文章、页面、产品等)
  • Fields(字段) — 集合的属性(标题、内容、价格等)
  • Taxonomies(分类) — 分类系统(类别、标签、自定义分类)
  • Menus(菜单) — 管理员可编辑的导航结构
  • Widget Areas(小部件区域) — 侧边栏和页脚的可配置内容区域
  • Plugins(插件) — 通过钩子、存储和 UI 添加功能的扩展

后续步骤