这些是 Tiny Cloud 和 TinyMCE Enterprise 的发行说明。如需了解 TinyMCE 最新社区版本的信息,请参阅 TinyMCE Changelog。

概述

TinyMCE 8.3.0 于 2025 年 12 月 10 日(星期三)面向 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 包含以下新增功能。

powerpaste_emf_processor 函数,该函数接收 emf blob 并返回 png blob 的 promise。

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 中的 Premium 插件现在除了支持 CommonJS (require) 外,还可以作为原生 ES module (import) 引入。这一增强功能使 Premium 插件与核心插件中已有的 ESM 功能保持一致,并适用于所有分发的构件,包括 NPM 包和 ZIP 压缩包。此次更新使现代打包工具能够自动解析最佳的模块格式,提高了与以 ESM 为主的工具链的兼容性,并消除了集成过程中对 CommonJS 垫片(shims)的需求。

改进

TinyMCE 8.3.0 还包括以下改进:

当某个 license key 不允许使用 Premium 插件时,显示编辑器通知。

以前,当某个 license key 不允许使用 Premium 插件时,插件会被禁用,但没有任何相应的编辑器消息。从 8.3.0 版本开始,这种行为得到了改进:现在当插件因许可证限制而被禁用时,编辑器会显示通知,减少了歧义。

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

现在,当编辑器设置为 readonly(只读)时,手风琴(Accordions)也可以展开和关闭了。

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

在 TinyMCE 8.3.0 中,Accordion 插件现在可以显式地管理 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 插件一起使用时。

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

当列表项的内容是单个块元素时,内联格式未应用于列表项的标记(marker)。

以前,当对完全或部分选择的列表应用行内格式,且列表内容被单个块级元素包裹时,样式不会应用于选择开始的列表项。这导致列表装饰器与其内容之间的样式不一致。

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

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

以前,发现一个问题,即 项目符号列表和编号列表工具栏按钮的下拉箭头提示信息未正确翻译。此问题已在 8.3.0 中解决。现在,这些分割按钮的下拉箭头在悬停时会显示正确翻译的提示信息。

有时删除行高并未将其从所有选定行中删除。

发现一个问题,即在多个元素上删除或修改 lineheight 属性时,如果元素的值不同,会导致更新不一致。在这种情况下,只有第一行的 lineheight 被更改或删除,而后续行未更新。

TinyMCE 8.3.0 通过引入改进的切换行为解决了这个问题,以确保所有行都能按预期正确更新或删除。

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

以前,发现一个问题,即在创建编号或项目符号列表的新项时,应用于列表项的 font-size 样式未保留。因此,通过按 Enter 添加的列表项未从前面的项继承正确的字体大小。

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