---
title: "命名和结构化你的协作文档"
description: "在 Tiptap 协作中有效地命名和组织文档，使用唯一标识符和 Y.js 片段。更多内容请查看文档！"
canonical_url: "https://tiptap.zhcndoc.com/guides/naming-documents"
---

# 命名和结构化你的协作文档

在 Tiptap 协作中有效地命名和组织文档，使用唯一标识符和 Y.js 片段。更多内容请查看文档！

本指南概述了命名文档和组织单一文档内容的最佳实践，以帮助您定义自己的文档结构。

有关如何选择文档名称的全面说明，您应查看我们的 [授权指南](https://tiptap.zhcndoc.com/collaboration/getting-started/authenticate.md#authorize-per-document)，因为文档命名在访问控制中也起着至关重要的作用。

## 结构化文档名称

Tiptap 协作使用文档名称来促进协作会话，它们作为唯一标识符将用户链接到同一个文档。在理论上，它可以是任何字符串。

虽然以下示例使用实体名称与唯一 ID 的组合，这在 CMS 应用程序中很常见，但您可以自由采用适合应用程序要求的任何命名约定。

新文档会根据需要自动生成；您只需向提供者提供一个字符串标识符。

```typescript
const documentName = 'article.123'
```

这种命名格式允许您轻松分离关键细节：

```typescript
const documentName = 'article.123'

// 将文档名称拆分成不同部分
const [entityType, entityID] = documentName.split('.')

console.log(entityType) // 输出: "article"
console.log(entityID) // 输出: "123"
```

## 使用片段管理嵌套文档

Yjs 的片段非常适合处理具有不同部分的复杂文档。如果您想要嵌套文档，例如一个具有单独 `title` 和 `content` 部分的博客文章，则可能相关。

使用片段，您可以使用一个 Y.Doc 实例（例如一个文档）并为其不同部分使用不同的编辑器。

例如，在此博客文章设置中：

```typescript
const ydoc = new Y.Doc()

// 标题编辑器
const titleEditor = new Editor({
  extensions: [
    Collaboration.configure({
      document: this.ydoc,
      field: 'title',
    }),
  ],
})

// 内容编辑器
const bodyEditor = new Editor({
  extensions: [
    Collaboration.configure({
      document: this.ydoc,
      field: 'content',
    }),
  ],
})
```

对于具有嵌套片段的复杂设置，您可以直接使用原始 Y.js 片段，绕过 `document` 和 `field` 设置。

```typescript
// 一个原始的 Y.js 片段
Collaboration.configure({
  fragment: ydoc.getXmlFragment('custom'),
})
```

要完全理解文档命名如何影响 Tiptap 协作中的访问控制，查阅我们的 [授权指南](https://tiptap.zhcndoc.com/collaboration/getting-started/authenticate.md) 是必不可少的。
