为 EmDash 做贡献

本页内容

EmDash 是一个 pnpm monorepo。主包是 packages/core(发布为 emdash)——它包含 Astro 集成、REST API、数据库层、schema 管理和插件系统。管理界面位于 packages/admin

完整的贡献者参考资料——仓库布局、架构、代码规范、changeset 政策——请参阅 CONTRIBUTING.md

本地设置

  1. 克隆并安装

    git clone https://github.com/emdash-cms/emdash.git
    cd emdash
    pnpm install
    pnpm build    # 首次运行前必需
  2. 启动演示

    cd demos/simple
    pnpm dev

    设置向导在首次启动时自动运行——它会创建数据库、运行迁移,并提示您创建管理员账户。

    要填充示例内容:pnpm seed

  3. 打开管理界面

    访问 http://localhost:4321/_emdash/admin

    在开发模式下,您可以使用绕过端点跳过 passkey 认证:

    http://localhost:4321/_emdash/api/setup/dev-bypass?redirect=/_emdash/admin

开发工作流

Watch 模式

要在演示旁边迭代核心包,运行两个终端:

# Terminal 1 — 更改时重建 packages/core
cd packages/core && pnpm dev

# Terminal 2 — 运行演示
cd demos/simple && pnpm dev

检查

提交前运行这些命令(从仓库根目录):

pnpm typecheck    # TypeScript
pnpm lint         # 完整的类型感知 lint
pnpm format       # 自动格式化(oxfmt, tabs)

测试

所有测试

pnpm test

仅 Core

cd packages/core && pnpm test

Watch 模式

cd packages/core && pnpm test --watch

E2E

pnpm test:e2e    # 启动自己的服务器

测试使用真实的内存 SQLite——不模拟。每个测试都获得一个全新的数据库。

什么会被接受

类型流程
Bug 修复直接打开 PR。包含一个失败的测试。
文档 / 错别字直接打开 PR。
翻译直接打开 PR。参见翻译 EmDash
功能打开一个 Discussion 并等待维护者批准。
重构先打开一个 Discussion。

没有事先获得维护者批准的功能 PR 将被关闭。

完整的贡献政策、changeset 指南、仓库布局和架构概述,请参阅 CONTRIBUTING.md