差异视图
使用 AI Suggestion 扩展在更改应用到文档前预览更改。以差异视图显示更改,并允许用户接受/拒绝单个更改。
注意
若要在更改 应用后 审查更改,请参见 AI Changes 扩展。
测试版功能
差异视图 API 是实验性功能,将来可能会有所变动。我们非常欢迎您的反馈! 联系我们。
设置指南
第一步:配置 AI Suggestion 扩展
使用 AI Suggestion 扩展初始化 Editor 实例。禁用自动加载建议。
import { Editor } from '@tiptap/core'
import StarterKit from '@tiptap/starter-kit'
import AiSuggestion from '@tiptap-pro/extension-ai-suggestion'
const editor = new Editor({
content: '<p>这是文档的初始内容</p>',
extensions: [
StarterKit,
AiSuggestion.configure({
// 禁用建议的自动加载
loadOnStart: false,
reloadOnUpdate: false,
}),
],
})第二步:定义规则以分组差异建议
每条建议必须关联一个规则。在此例中,我们希望将差异显示为属于 'diff' 规则的建议列表。
import { Editor } from '@tiptap/core'
import StarterKit from '@tiptap/starter-kit'
import AiSuggestion from '@tiptap-pro/extension-ai-suggestion'
const editor = new Editor({
content: '<p>这是文档的初始内容</p>',
extensions: [
StarterKit,
AiSuggestion.configure({
// 禁用建议的自动加载
loadOnStart: false,
reloadOnUpdate: false,
rules: [
{
id: 'diff',
// 差异视图中不使用标题、提示和颜色
title: '',
prompt: '',
color: '#000',
backgroundColor: '#fff',
// 不将此规则发送给 AI 模型生成建议
ignoreInTiptapCloud: true,
// 以差异格式显示建议
displayAsDiff: true,
},
],
}),
],
})第三步:配置样式
自定义编辑器中建议的显示样式。
:root {
--color-green-100: oklch(0.962 0.044 156.743);
--color-green-700: oklch(0.527 0.154 150.069);
--color-red-100: oklch(0.936 0.032 17.717);
--color-red-700: oklch(0.505 0.213 27.518);
}
.tiptap-ai-diff-suggestion--old {
color: var(--color-red-700);
background-color: var(--color-red-100);
}
.tiptap-ai-diff-suggestion--new {
color: var(--color-green-700);
background-color: var(--color-green-100);
}
.tiptap-ai-diff-suggestion--new * {
background-color: var(--color-green-100);
}了解如何为建议添加高级样式,请参阅 样式指南。
第四步:生成建议
通过将文档的新内容(HTML 格式)传递给解析器函数生成建议。AI Suggestion 扩展将比较新内容与当前内容,生成属于之前定义的 'diff' 规则的建议列表。
editor.commands.loadAiSuggestions({
resolver: async (options) => {
const newSuggestions = await options.defaultResolver({
...options,
apiResolver: async () => {
return {
format: 'fullHtml',
content: {
items: [
{
ruleId: 'diff',
fullHtml: '<p>这是文档的新内容</p>',
},
],
},
}
},
})
return newSuggestions
},
})第五步:审查建议
基于差异的建议的审查方式与常规建议相同。更多信息请参阅 应用建议 指南。