tiptap 使用唯一标识符命名文档
本指南介绍了最佳实践,用于命名文档并组织单个文档内的内容,帮助您定义自己的文档结构。对于全面了解如何选择文档名称,建议查看我们的 授权指南 ,因为文档命名在访问控制中也起着关键作用。
文档命名结构
Tiptap 合作使用文档名称来促进协作会话,它们作为唯一标识符,将用户链接到同一文档。理论上,它可以是任何字符串。
以下示例使用实体名称和唯一 ID 的组合,这通常适用于内容管理系统(CMS)应用,但您可以根据应用需求自由采用任何命名约定。
新文档会在需要时自动创建,只需提供一个字符串标识符给提供商即可。
const documentName = "article.123";
这种命名格式使您能够轻松地分开关键细节:
const documentName = "article.123";
// 将文档名称分割成单独的部分
const [entityType, entityID] = documentName.split(".");
console.log(entityType); // 输出:"article"
console.log(entityID); // 输出:"123"
使用片段管理嵌套文档
Yjs 的片段非常适合处理具有不同部分的复杂文档。例如,如果您想将博客文章分为独立的 title
和 content
部分,这可能会很有用。
通过片段,您可以使用一个 Y.Doc 实例(即一个文档),为其中的不同部分使用不同的编辑器。
例如,在这个博客文章设置中:
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
设置。
// 原始的 Y.js 片段
Collaboration.configure({
fragment: ydoc.getXmlFragment("custom"),
});
要深入了解 Tiptap 合作中文档命名如何影响访问控制,请务必查阅我们的 授权指南。