# @axiijs/doc0 中文文档

规范地址：https://npmcn.com/package/%40axiijs/doc0/

版本：1\.0\.0
npm 元数据更新时间：2026-07-21T06:15:19.117Z
中文译文更新时间：2026-11-07T15:59:18.400Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40axiijs/doc0
原文对照：https://npmcn.com/package/%40axiijs/doc0/?lang=original
项目主页：https://github.com/axiijs/doc0#readme
源码仓库：https://github.com/axiijs/doc0

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：509 kB，8 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：14 个
- peer 依赖：axii ^4\.6\.0，data0 ^2\.9\.1
- 首次发布：2026-07-21T06:15:18.590Z
- 最新版本发布：2026-07-21T06:15:18.916Z
- 近 30 天下载量：5862（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：1（近 12 个月 1 个）

## 中文简介

Axii生态系统的高性能丰富文本编辑器,由ProseMirror提供动力.

## 安装

```sh
npm install @axiijs/doc0
```

也可以使用：`pnpm add @axiijs/doc0`、`yarn add @axiijs/doc0`、`bun add @axiijs/doc0`

## README

# doc0

Axii 体系下的高性能富文本编辑器，基于 [ProseMirror](https://prosemirror.net/)（文档模型与编辑内核）+ [Axii](https://github.com/axiijs/axii)（响应式 UI 与自定义块渲染）。

-   **高性能**：文本走 ProseMirror 原生渲染最快路径；自定义块组件只执行一次，更新是 attr 级 atom 的精确 DOM 写入，无重渲染、无 vdom diff。
-   **自定义块一等公民**：`defineBlock({ node: NodeSpec, component: AxiiComponent })` 即可注册新块，支持内容洞（可编辑子内容）与纯交互 widget。
-   **响应式镜像**：`editor.signals`（doc / selection / canUndo …）是 data0 atom，工具栏等周边 UI 直接绑定即可。

完整规划与架构设计见 [docs/plan.md](https://npmcn.com/package/%40axiijs/doc0/docs/plan.md)。

## 快速开始

```bash
npm install
npm run dev        # 打开 playground
npm test           # 浏览器模式（Playwright chromium）运行测试
npm run typecheck  # tsc --noEmit
npm run build      # 构建库产物到 dist/
```

## 用法示例

```tsx
/** @jsx createElement */
import { atom, RenderContext } from 'axii'
import { Doc0Editor, Editor, defineBlock, contentHole, BlockViewProps } from 'doc0'
import 'doc0/style.css'

// 一个带内容洞的自定义块
const Callout = defineBlock({
    name: 'callout',
    node: {
        group: 'block',
        content: 'paragraph+',
        attrs: { kind: { default: 'info' } },
    },
    component: function CalloutView({ attrs, updateAttrs }: BlockViewProps, { createElement }: RenderContext) {
        return (
            <div class={() => `callout callout-${attrs.kind()}`}>
                <button onClick={() => updateAttrs({ kind: attrs.kind() === 'info' ? 'warn' : 'info' })}>
                    {attrs.kind}
                </button>
                {contentHole()}
            </div>
        )
    },
})

function App({}, { createElement }: RenderContext) {
    const editor = new Doc0Editor({ blocks: [Callout] })  // 随组件自动销毁
    return (
        <div>
            <button onClick={() => editor.commands.undo()} disabled={() => !editor.signals.canUndo()}>Undo</button>
            <Editor editor={editor} />
        </div>
    )
}
```

## 常见问题

### @axiijs/doc0 是什么？

Axii生态系统的高性能丰富文本编辑器,由ProseMirror提供动力\.

### 如何安装 @axiijs/doc0？

在项目目录运行 npm install @axiijs/doc0，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：axii（^4\.6\.0）、data0（^2\.9\.1）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @axiijs/doc0 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @axiijs/doc0 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @axiijs/doc0 可以商用吗？

@axiijs/doc0 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @axiijs/doc0 的下载量有多少？

根据 npm 官方下载统计，@axiijs/doc0 在 2026/10/08 – 2026/11/06 这 30 天内被下载 5,862 次，日均约 195 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @axiijs/doc0 还在维护吗？

最新版本 1\.0\.0 发布于 2026/07/21（3 个月前）；至今共发布 1 个版本，其中过去 12 个月发布了 1 个；首次发布于 2026/07/21。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

