guide支持的协作功能

从 Word 导入转换器支持 Word 的协作功能,即评论和修订。评论功能允许您对所选内容添加注释,而修订功能允许您在内容中提出更改建议,例如删除、插入或替换所选内容的一部分。

这两个功能也由 CKEditor 5 实现,因此请确保阅读 CKEditor 5 评论CKEditor 5 修订 指南以了解更多信息。

请注意,尽管从 Word 导入转换器会生成与 CKEditor 5 协作功能兼容的内容,但它与技术无关,可以在您的最终集成中使用,只要它支持相同的格式。

从本指南中了解这些是如何转换为 HTML 属性并由 CKEditor 5 支持的。

# 评论

评论是 Word 的一项高级功能,从 Word 导入功能支持该功能,并与 CKEditor 5 评论 完全兼容。您可以通过选择一些内容并从功能区的“插入”选项卡中选择“新建评论”选项来添加评论,或者只是使用右键单击所选内容打开的上下文菜单来添加评论。

A comment in Word.

从 Word 导入通过生成与 CKEditor 5 兼容的 HTML 并返回评论定义来完全保留评论,这些定义可以通过使用 从 Word 导入 CKEditor 5 插件 或实现自定义评论集成来进行集成。

A comment in CKEditor 5.

要使用 REST API 启用评论转换,请在请求主体中传递有关 用户 IDcollaboration_features.comments 属性的信息。

const config = {
    collaboration_features: {
        user_id: 'user-id',
        comments: true
    }
};

以上屏幕截图中显示的简单评论将返回的示例负载如下所示

{
  "html": "<p><comment-start name=\"thread-id\"></comment-start>Hello, World!<comment-end name=\"thread-id\"></comment-end></p>",
  "comment_threads": [
    {
      "thread_id": "thread-id",
      "is_resolved": false,
      "comments": [
        {
          "author": "John",
          "content": "<p>Comment 1</p>",
          "created_at": "2022-09-19T15:05:00Z",
          "is_resolved": false,
        },
        {
          "author": "Neil",
          "content": "<p>Comment 2</p>",
          "created_at": "2022-09-19T15:05:00Z",
          "is_resolved": false,
        }
      ]
    }
  ]
}

comment_threads JSON 属性包含在文档中找到的所有评论的完整列表,按评论线程 ID 分组。每个评论包含以 HTML 格式的评论内容以及有关评论原始 author 的信息。

评论功能由 CKEditor 5 完全支持,只需启用 CKEditor 5 评论从 Word 导入 插件即可。

# 已解决的评论

在 Word 中解决评论是一种表明已解决特定评论且不再成为问题的方式。要解决评论,用户只需右键单击它并选择“解决评论”。然后,该评论将变灰,并将在其旁边显示一个复选标记。

Resolved Word comment.

从 Word 导入会在返回的负载中返回有关已解决评论的信息。is_resolved 属性指示用户是否已解决评论。此属性可以在评论线程和单个评论中找到。只有当线程中的所有评论都被标记为已解决时,评论线程才会被视为已解决。

已解决的评论由 CKEditor 5 评论 功能支持。

# 评论样式

默认情况下,将保留应用于评论的所有样式。如果您想限制转换期间应用的评论格式,formatting.comments 将派上用场。

该选项可以使用以下值之一

  • full - 默认值,启用所有评论样式,
  • basic - 仅保留粗体、斜体、下划线和删除线样式,
  • none - 将不保留任何样式。
const config = {
    collaboration_features: {
        user_id: 'user-id',
        comments: true
    },
    formatting: {
        comments: 'basic'
    }
};

要详细了解从 Word 导入转换器可用的 REST API 配置选项,请阅读 从 Word 导入云服务 文档。

# 修订

修订是另一项高级功能,它也与 CKEditor 5 修订 兼容。要在 Word 中开始跟踪更改,请从功能区中选择“审阅”选项卡,然后启用“修订”选项。之后,对文档进行的任何更改都将被跟踪。

A track change in Word.

目前,从 Word 导入支持文本插入和删除,包括表格、列表和图像内的更改。

此外,当部分内容移动到文档中的不同位置时,Word 文档可以包含移动建议。这些建议由一对相应的删除和插入建议表示,简化了它们的整体结构,而不会丢失任何信息。

A track change in CKEditor 5.

要使用 REST API 启用修订转换,请在请求主体中传递有关 用户 IDcollaboration_features.track_changes 属性的信息。

const config = {
    collaboration_features: {
        user_id: 'user-id',
        track_changes: true
    }
};

简单建议将返回的示例负载

{
  "html": "<p>Hello, <suggestion-start name=\"suggestion-id:user-id\"></suggestion-start>World!<suggestion-end name=\"suggestion-id:user-id\"></suggestion-end></p>",
  "suggestions": [
    {
        "id": "suggestion-id",
        "type": "insertion",
        "author": "John",
        "created_at": "2022-09-19T15:05:00Z"
    }
  ]
}

suggestions JSON 属性包含在文档中找到的所有建议的完整列表。每个建议包含应用于建议定义和 HTML 内容的建议的唯一 ID、建议的类型 (insertion/deletion) 以及有关建议原始 author 的信息。

修订功能由 CKEditor 5 完全支持,只需启用 CKEditor 5 修订从 Word 导入 插件即可。

要详细了解从 Word 导入转换器可用的 REST API 配置选项,请阅读 从 Word 导入云服务 文档。

# 时区

Word 修订功能不支持建议创建日期的 UTC 格式。为了正确计算它们,我们使用通过 config.timezone 提供给转换器的时区数据 (在 API 文档中阅读有关此配置选项的更多信息)。

# 已知限制

  • 对跟踪表格和列表等 HTML 块元素对这些元素文本内容的更改的支持有限。
  • 不支持格式化建议,例如将粗体应用于文本或将段落更改为列表。

# 禁用修订

如果文档包含一些建议,但修订功能被 collaboration_features.track_changes 配置选项禁用,则所有修订都将被视为已应用。例如,如果用户有一个包含文本插入建议的文档,则该文本将被应用于 HTML 作为常规文本。删除建议的工作方式相同 - 如果一些内容被建议删除,它将从 HTML 中删除。

这种行为确保在转换过程中尽可能少地丢失内容,确保即使您没有启用修订功能,您仍然可以充分利用从 Word 导入转换器。

# 协作作者和用户

请注意,从 Word 导入的作者(也可见于 CKEditor 5 中作为用户)直接从 .docx 文件加载。它们与 Cloud Services 中创建的用户不同。

Word 文档可以由第三方作者操作,如果它们自动连接到 Cloud Services 用户,可能会构成潜在的安全威胁。因此,CKEditor 5 协作功能确保评论或建议的作者仅用于显示目的。实际连接到 CKEditor 5 协作功能的用户是登录到 Cloud Services 的用户。

让我们考虑以下情况:有一个在 CKE5 中编辑的文档,其中包含一些评论。该文档被导出到 Word,然后重新导入到 CKEditor 5。在这种情况下,评论作者和 Cloud Services 用户之间的连接将丢失,因为 CKEditor 5 无法仅根据提供的 Word 文件来猜测哪个用户是评论的作者。