emdash

来源:GitHub · ⭐ 7493 stars · TypeScript

项目介绍

EmDash 是一个基于 Astro 框架的全栈 TypeScript CMS,定位为 WordPress 的现代化精神继承者。它将 Astro 的岛屿架构(Islands Architecture)与 TypeScript 强类型系统相结合,为开发者提供高性能、可维护的内容管理解决方案。

核心技术亮点

Astro 岛屿架构

Astro 的核心创新在于"岛屿架构"——默认生成零 JavaScript 的静态 HTML,只在需要交互的组件处注入 JavaScript。这意味着:

  • 页面加载速度极快(Core Web Vitals 优秀)
  • SEO 友好,服务端渲染开箱即用
  • 可以混合使用 React、Vue、Svelte 等任意框架组件

TypeScript 全栈类型安全

从内容模式(Content Schema)到 API 接口,全链路 TypeScript 类型推断:

  • 内容集合(Content Collections)提供编译时内容验证
  • 类型安全的路由和数据获取
  • IDE 自动补全,大幅减少运行时错误

主要功能

  1. 内容集合管理 - 基于文件系统的内容管理,Markdown/MDX 原生支持
  2. 动态路由 - 灵活的页面生成策略(SSG/SSR/混合模式)
  3. 插件生态 - 兼容 Vite 插件体系,可扩展性强
  4. 多媒体优化 - 内置图片优化,自动生成 WebP/AVIF 格式
  5. 主题系统 - 组件化主题,支持深度定制

适用场景

  • 技术博客:针对开发者的内容平台,代码高亮、数学公式支持完善
  • 企业官网:高性能落地页,营销内容快速迭代
  • 文档站点:结构化内容管理,版本控制友好
  • 内容门户:多作者协作,工作流集成

与 WordPress 的对比

维度EmDash (Astro)WordPress
性能⚡ 极快(静态优先)🐢 依赖缓存插件
安全性✅ 无数据库攻击面⚠️ 需要持续维护
开发体验✅ TypeScript 原生❌ PHP + 插件地狱
部署✅ CDN 边缘部署❌ 需要服务器
学习成本中(需了解 Astro)低(生态成熟)

快速上手

# 克隆项目
git clone https://github.com/emdash-cms/emdash
cd emdash

# 安装依赖
npm install

# 启动开发服务器
npm run dev

# 构建生产版本
npm run build

总结

EmDash 代表了现代内容管理的方向:以开发者体验为中心,用 TypeScript 保证代码质量,借助 Astro 的架构优势实现极致性能。对于有开发能力的团队来说,它是比 WordPress 更合理的技术选择。