# emdash

> 来源：[GitHub](https://github.com/emdash-cms/emdash) · ⭐ 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） | 低（生态成熟） |

## 快速上手

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

# 安装依赖
npm install

# 启动开发服务器
npm run dev

# 构建生产版本
npm run build
```

## 总结

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