这些是 Tiny Cloud 和 TinyMCE Enterprise 发行说明。要获取 TinyMCE 最新社区版本的相关信息,请参阅 TinyMCE 更新日志。

概述

2025 年 12 月 10 日星期三,TinyMCE 8.3.0 面向 TinyMCE Enterprise 和 Tiny Cloud 发布。本发行说明提供了 TinyMCE 8.3.0 变更的概述,包括:

  • 高级插件现可通过 NPM 获取

  • 配套的高级插件变更

  • 改进

  • 新增功能

  • 错误修复

高级插件现可通过 NPM 获取

TinyMCE 8.3.0 引入了 tinymce-premium NPM 包,使商业客户能够直接从 NPM 注册表轻松获取所有高级插件、皮肤、图标和语言包。该包可在 https://www.npmjs.com/package/tinymce-premium 下载。

tinymce-premium 包简化了高级插件的安装与集成流程。若要开始在 TinyMCE 中使用高级插件,请参阅:快速开始:从 NPM 或 Yarn 使用 TinyMCE。

配套的高级插件变更

以下高级插件更新与 TinyMCE 8.3.0 同步发布。

PowerPaste

TinyMCE 8.3.0 版本包含配套发布的 PowerPaste 高级插件。

PowerPaste 包含以下新增功能。

接受 emf blob 并返回 png blob 的 Promise 的 powerpaste_emf_processor 函数。

2025 年 10 月之前,从 Microsoft Word 复制粘贴包含 emf 图像的内容时,会导致这些图像无法粘贴并显示错误消息。2025 年 10 月之后,此行为发生了变化:图像开始出现在编辑器中,但仅以低分辨率显示,同时 Chrome 和 Firefox 会显示错误消息。Safari 则显示低分辨率图像而不显示错误消息。

这一变更对用户体验产生了负面影响。2025 年 10 月之后,用户会看到低质量图像以及错误消息 Some images failed to import,这导致了混淆,因为图像实际上在编辑器中是可见的——尽管质量有所降低。

TinyMCE 8.3.0 引入了一个新选项 powerpaste_emf_processor 来解决此问题。该选项接受一个函数,该函数接收一个 emf blob 并返回一个解析为 png blob 的 Promise(即 (blob: Blob) ⇒ Promise<Blob>)。

  • 如果提供了此选项,编辑器将调用所提供的函数,在将 emf 图像 blob 插入编辑器之前将其转换为 png 图像 blob。

  • 如果未提供此选项,编辑器将移除低质量图像并显示错误消息,恢复 2025 年 10 月之前的行为。

如果仅选中图像,粘贴将成功且图像会正确插入。但是,如果图像与其他类型的内容(如文本)一起选中,则图像将无法粘贴并显示错误消息。

有关 PowerPaste 插件的信息,请参阅:PowerPaste。

Media Optimizer

TinyMCE 8.3.0 版本包含配套发布的 Media Optimizer 高级插件。

Media Optimizer 包含以下改进和修复。

支持上传更多文件类型

Media Optimizer 插件现在支持通过链接对话框上传许多额外的文件类型,包括文档(PDF、Word、Excel、PowerPoint、RTF、纯文本)、iWork 文件(Keynote、Pages、Numbers)、音频文件(WAV、MP3、OGG)和归档文件(ZIP、GZIP、TAR、7Z、RAR)。支持的完整文件类型列表可在文档中查看。

可以使用 documents_file_types 选项自定义默认支持的文件类型列表。

有关 Media Optimizer 插件的信息,请参阅:Media Optimizer:文件和文档。

新上传的视频现支持响应式

新上传的视频现默认支持响应式。视频会在较小屏幕上自动缩小,同时保持其最大尺寸。有关更多信息,请参阅:uploadcare_video_properties 配置选项。

有关 Media Optimizer 插件的信息,请参阅:Media Optimizer:视频。

CSS 资源文件未正确加载。

此前,Media Optimizer 的 CSS 资源文件未正确加载。这主要在尝试捆绑此插件时引发问题。在 TinyMCE 8.3.0 中,通过确保 Media Optimizer 的 CSS 资源文件现能正确加载,这一问题已得到解决。

有关 Media Optimizer 插件的信息,请参阅:Media Optimizer。

高级插件现支持 ESM 模块

TinyMCE 8.3.0 中的高级插件现在除了可以使用 CommonJS (require) 之外,还可以作为原生 ES 模块 (import) 使用。这一增强功能使高级插件与核心插件中已经具备的现有 ESM 功能保持一致,并且适用于所有分发的制品,包括 NPM 包和 ZIP 捆绑包。此次更新使现代打包工具能够自动解析最佳的模块格式,提高了与专注于 ESM 的工具链的兼容性,并消除了集成过程中对 CommonJS shims 的需求。

改进

TinyMCE 8.3.0 还包括以下改进:

当某个高级插件不适用于给定的 license key 时,显示编辑器通知。

以前,当某个高级插件不适用于给定的 license key 时,该插件会被禁用,但没有任何相应的编辑器消息提示。从 8.3.0 开始,此行为得到了改进:当插件因 license 限制而被禁用时,编辑器现在会显示通知,从而减少了歧义。

有关 license key 的更多信息,请参阅:License Key。

现在,当编辑器设置为 readonly 时,手风琴也可以打开和关闭。

在 TinyMCE 的早期版本中,readonly 模式下的手风琴行为依赖于浏览器的默认处理方式,这仍可能修改 DOM 并导致编辑器状态发生不可预知的变化。这意味着,即使编辑器被配置为 readonly,展开或折叠手风琴部分也可能以不一致的方式改变底层的内容结构。

在 TinyMCE 8.3.0 中,Accordion plugin 现在会在 readonly 模式下明确管理打开和关闭操作,确保切换面板所需的 DOM 更新以可控且最小化的方式进行。这一改进提供了更可预测的行为,更好地控制了 DOM 的操作方式,并在 readonly 编辑器中与手风琴交互时提供了一致的用户体验。

新增功能

TinyMCE 8.3.0 还包括以下新增功能:

新的选项 files_upload_handler、documents_file_types 和 link_uploadtab

为 Link 插件添加了新的配置选项,以支持通过链接对话框进行文件上传:

欲了解更多信息,请参阅 files_upload_handler、documents_file_types 和 link_uploadtab。

dropzone 对话框组件的新选项

为 dropzone 对话框组件添加了新的配置选项,用于自定义 dropzone UI 和文件类型限制:

  • dropAreaLabel - 指定文件拖放区域的文本标签(默认值:'Drop an image here')

  • buttonLabel - 指定浏览按钮的文本标签(默认值:'Browse for an image')

  • allowedFileTypes - 指定允许的文件类型的 MIME 类型模式(默认值:'image/*',例如 'image/*'、'application/pdf')

  • allowedFileExtensions - 指定允许的文件扩展名数组(默认值:images_file_types,例如 ['.jpg', '.png', '.pdf'])

欲了解更多信息,请参阅 dropzone 组件。

Bug 修复

TinyMCE 8.3.0 还包括以下 bug 修复:

当编辑器被禁用时,手风琴仍然可以被切换。

TinyMCE 的早期版本允许手风琴即使在编辑器被禁用时也能保持可展开状态,从而产生了不一致和意外的行为,特别是在与 Autoresize plugin 一起使用时。

这可能导致在预期没有内容更改的情况下发生内容更改,并使交互模式在预期的自定义行为和浏览器的默认处理之间发生偏移。在 8.3.0 版本中,这个问题已经得到解决,通过确保当编辑器被禁用时手风琴完全不可交互,防止了意外的状态更改,并保持了编辑器行为的一致性。

当列表项的内容是一个单独的块元素时,内联格式没有应用于列表项的标记符上。

此前,当对一个完整或部分选中的列表(列表中的内容包裹在单个块级元素内)应用行内格式时,样式不会应用到选区开始的列表项,这导致列表装饰器及其内容的样式不一致。

此问题现已在 8.3.0 中解决。逻辑已更新,可确保行内格式正确应用到选区开始的列表项。

“项目符号列表”和“编号列表”工具栏按钮的下拉箭头工具提示现可正确翻译。

此前,我们发现 Bullet list 和 Numbered list 工具栏按钮的下拉箭头工具提示无法正确翻译。此问题已在 8.3.0 中解决。现在,悬停时,这些拆分按钮的下拉箭头会显示正确翻译的工具提示。

有时删除行高不会删除所有选中行的行高。

我们发现,当多个元素的 lineheight 属性值不同时,删除或修改这些属性会导致更新不一致。在这种情况下,只有第一行的 lineheight 被更改或删除,后续行未更新。

TinyMCE 8.3.0 通过引入改进的宽松 lineheight 选项切换行为解决了此问题,确保现在能正确更新或删除所有行的行高。

列表项上的 font-size 样式未复制到新的列表项。

此前,我们发现在编号或项目符号列表中创建新项时,应用于列表项的 font-size 样式不会保留。因此,按 Enter 键添加的列表项不会从前一项继承正确的字号。

TinyMCE 8.3.0 通过更改行为解决了此问题,现在 font-size 样式会一致地传递给新创建的列表项。这确保了所有新的列表项都有正确的字号。