emdash-cms/emdash

GITHUB中文整理

主语言 TypeScript · 14,029 星 · MIT · 创建于 2026-04-01

内容管理AstroTypeScript插件沙箱无服务器
打开 GitHub 仓库

基于 Astro 的全栈 TypeScript 内容管理系统,提供管理后台、内容建模和插件机制,可运行在 Cloudflare 或 Node.js 上。

Stars 14,029 累计 star,越多说明被认可得越广
Watching 74 订阅该仓库变动的人数
Forks 1,343 被派生出去的仓库数
Issues 336 当前开放的 Issue 数
语言 TypeScript GitHub 自动判定的主语言
许可证 MIT 开源协议,用之前先确认能不能商用
24h 增长 — 数据积累中
7 日增长 — 数据积累中
30 日增长 — 数据积累中

仓库健康度

5 个维度
只看客观信号,不构成安全性结论
维护活跃度 数据完整
2026-10-28 23:47 最近推送

最近推送 2026-10-28 23:47(0 天前),属于活跃维护

社区响应 数据完整
336 开放 Issue

开放 Issue 336 个 · Fork 1,343 个

增长趋势 证据不足
— 7 日新增

star 记录还不够天数,增量算不出来

项目规范 数据完整
MIT 许可证

许可证 MIT · 4 个 topics

版本发布 证据不足
— 发布次数

这一项暂无数据,不代表项目没有发布

「证据不足」表示这项数据暂时没有取到,不能读成「项目有问题」;「部分数据」表示只拿到一部分信号。版本发布要额外调 Releases 接口,下一版补。

Star 趋势

6 天记录
最近 90 天站内记录的星数
14,029当前 Star +127首尾差值 2026-10-23最早记录 2026-10-28最近记录

横轴 2026-10-23 → 2026-10-28,纵轴按这段时间的最小/最大值拉伸。趋势来自站内每天记录一次的星数,页面打开时不会实时请求 GitHub。

它解决什么问题

据 README 归纳
没有它会怎样

传统 WordPress 需要同时维护 PHP 和 JavaScript,靠多层缓存提升性能,且插件能直接访问数据库与文件系统,一个漏洞插件就可能危及整站安全。这个项目用类型安全和沙箱隔离重新实现类似建站体验,避免这些隐患。

核心能力

7 条
归纳自 README,不是功能列表照抄
  1. 1创建博客文章、页面和自定义内容类型,支持草稿、修订与定时发布
  2. 2用结构化 JSON 格式存储富文本,让内容与网页展示解耦
  3. 3在沙箱 Worker 中运行插件,并按声明的能力清单限制其访问范围
  4. 4提供带可视化模式构建器的管理后台,管理媒体、菜单、分类和组件
  5. 5用 Passkey 优先方式登录,并提供角色权限控制和多种备用登录方式
  6. 6通过命令行工具和内置 MCP 服务让 AI 助手程序化操作内容与模式
  7. 7用全文搜索快速检索站内内容

项目画像

6 个角度
决定要不要用之前,先看这六条

项目定位

基于 Astro 的全栈 TypeScript 内容管理系统,提供管理后台、内容建模和插件机制,可运行在 Cloudflare 或 Node.js 上。

适合谁

适合想用 TypeScript 和 Astro 搭建内容站点的开发者与内容团队,也适合需要安全插件环境或希望让 AI 助手参与站点管理的场景。

典型场景

团队用它搭建博客或营销页面,在后台完成内容创建、媒体管理和发布调度;开发者把现有 Astro 项目接入后,直接获得管理后台、认证和内容 API;站点管理员通过权限角色控制编辑、作者和贡献者的操作范围;让 AI 助手通过命令行或 MCP 服务读取和修改站点内容与内容模型

部署难度

需要先准备 Astro 项目并配置好 Cloudflare 或 Node.js/SQLite 运行环境,再将集成加入配置,即可获得管理后台与内容 API;具体部署步骤未详细说明。

风险限制

需要运行在 Cloudflare 的 D1、R2 和 Workers 上,或使用带 SQLite 的 Node.js 服务器;插件沙箱依赖动态 Worker 加载机制。

最近维护

最近一次推送是 2026-10-28 23:47。 实现方式:它作为 Astro 集成接入现有站点,内容类型存于数据库而非代码中,每个集合对应带类型列的 SQL 表,并可从实时模式生成 TypeScript 类型;内容通过 Astro Live Collections 查询,无需重建或额外接口。

README 原文细节

3 个板块
项目自己写的功能与用法,原文照录

核心功能README 里列出来的能力清单

Features

Content -- Blog posts, pages, custom content types. Rich text editing via TipTap with Portable Text storage. Revisions, drafts, scheduled publishing, full-text search (FTS5), inline visual editing.

Admin -- Full admin panel with visual schema builder, media library (drag-drop uploads via signed URLs), navigation menus, taxonomies, widgets, and a WordPress import wizard.

Auth -- Passkey-first (WebAuthn) with OAuth and magic link fallbacks. Role-based access control: Administrator, Editor, Author, Contributor.

Plugins -- definePlugin() API with lifecycle hooks, KV storage, settings, admin pages, dashboard widgets, custom block types, and API routes. Sandboxed execution on Cloudflare via Dynamic Worker Loaders, and on Node.js in a workerd child process.

实现原理它内部是怎么做的

How It Works

EmDash is an Astro integration. Add it to your config and you get a complete CMS: admin panel, REST API, authentication, media library, and plugin system.

Content types are defined in the database, not in code. Non-developers create and modify collections through the admin UI. Each collection gets a real SQL table with typed columns. Developers generate TypeScript types from the live schema:

Query content using Astro's Live Collections -- no rebuilds, no separate API:

其它说明README 里剩下的内容

Blog

  • Categories & tags
  • Full-text search
  • Comment-ready
  • Dark / light mode

Marketing

  • Hero with photo and CTAs
  • Logo wall, features and stats
  • Text and photo sections
  • Pricing, FAQ and closing CTA
  • Dark / light mode

Portfolio

  • Project grid
  • Tag filtering
  • Case study pages
  • Dark / light mode

关于 emdash 的常见问题

6 个问题
答案来自 README 归纳与 GitHub 实时数据
emdash 是做什么的?

基于 Astro 的全栈 TypeScript 内容管理系统,提供管理后台、内容建模和插件机制,可运行在 Cloudflare 或 Node.js 上。 传统 WordPress 需要同时维护 PHP 和 JavaScript,靠多层缓存提升性能,且插件能直接访问数据库与文件系统,一个漏洞插件就可能危及整站安全。这个项目用类型安全和沙箱隔离重新实现类似建站体验,避免这些隐患。

emdash 有哪些功能?

核心能力:创建博客文章、页面和自定义内容类型,支持草稿、修订与定时发布;用结构化 JSON 格式存储富文本,让内容与网页展示解耦;在沙箱 Worker 中运行插件,并按声明的能力清单限制其访问范围;提供带可视化模式构建器的管理后台,管理媒体、菜单、分类和组件;用 Passkey 优先方式登录,并提供角色权限控制和多种备用登录方式;通过命令行工具和内置 MCP 服务让 AI 助手程序化操作内容与模式;用全文搜索快速检索站内内容。

emdash 适合谁用?

适合想用 TypeScript 和 Astro 搭建内容站点的开发者与内容团队,也适合需要安全插件环境或希望让 AI 助手参与站点管理的场景。

emdash 是怎么工作的?

它作为 Astro 集成接入现有站点,内容类型存于数据库而非代码中,每个集合对应带类型列的 SQL 表,并可从实时模式生成 TypeScript 类型;内容通过 Astro Live Collections 查询,无需重建或额外接口。

用 emdash 有什么门槛或限制?

需要运行在 Cloudflare 的 D1、R2 和 Workers 上,或使用带 SQLite 的 Node.js 服务器;插件沙箱依赖动态 Worker 加载机制。

emdash 现在还在维护吗?数据怎么样?

目前 14,029 星,1,343 个 Fork,主语言 TypeScript,创建于 2026-04-01,最近一次推送 2026-10-28 23:47,许可证 MIT。星数、Fork、推送时间都是 GitHub 返回的实时数据,「最近推送」离现在越近说明越活跃;长期不动要留意是否已停止维护。

这些内容来自哪

读法说明
中文整理据 README 归纳,数据取自 GitHub
中文说明据项目 README 归纳只写 README 能确认的内容,不替作者补功能与数字
关键数据与 GitHub 页面一致星数、Fork、语言与时间都不做二次加工
数据日期2026-10-23 17:59星数与介绍这份数据是哪一天的

项目数据取自 GitHub 官方接口与项目 README;星数、Fork、语言与时间以 GitHub 页面为准,档案更新于 2026-10-23 17:59。