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

概述

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

  • Premium 插件现已支持通过 NPM 获取

  • 相应的 Premium 插件变更

  • 改进

  • 新增功能

  • Bug 修复

Premium 插件现已支持通过 NPM 获取

TinyMCE 8.3.0 引入了 tinymce-premium NPM 包,让商业客户能够直接从 NPM 注册表轻松获取所有 premium 插件、skins、icons 和 language packs。该包可在 https://www.npmjs.com/package/tinymce-premium 下载。

tinymce-premium 包简化了 premium 插件的安装与集成。要开始在 TinyMCE 中使用 premium 插件,请参阅:Quick start: TinyMCE from NPM or Yarn。

相应的 Premium 插件变更

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

PowerPaste

TinyMCE 8.3.0 版本包含相应的 PowerPaste premium 插件发布。

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 premium 插件发布。

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: Files and Documents。

新上传的视频现在具有响应式特性

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

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

CSS 资源文件加载不正确

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

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

Premium 插件现已包含 ESM 模块支持

TinyMCE 8.3.0 中的高级插件现在除了支持 CommonJS (require) 之外,还可以作为原生 ES 模块 (import) 使用。这一增强功能使高级插件与核心插件中已有的 ESM 功能保持一致,并适用于所有分发的构建产物,包括 NPM 包和 ZIP 捆绑包。此更新使现代打包工具能够自动解析最优的模块格式,提高了与 ESM 工具链的兼容性,并无需在集成过程中使用 CommonJS 垫片。

改进

TinyMCE 8.3.0 还包括以下改进:

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

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

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

当编辑器设置为只读时,手风琴组件现在可以打开和关闭。

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

在 TinyMCE 8.3.0 中,Accordion 插件现在显式管理只读模式下的打开和关闭交互,确保切换面板所需的任何 DOM 更新都以受控的、最小侵入的方式执行。这一改进提供了更可预测的行为,更好地控制 DOM 的操作方式,并在只读编辑器中与手风琴交互时提供一致的用户体验。

新增功能

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

新增选项 files_upload_handler、documents_file_types 和 link_uploadtab

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

有关更多信息,请参阅 files_upload_handler、documents_file_types 和 link_uploadtab。

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 中,通过确保编辑器被禁用时手风琴组件完全不可交互解决了此问题,防止了意外的状态更改并保持了一致的编辑器行为。

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

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

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

现在,bullet 和 number 列表工具栏按钮的下拉箭头的 Tooltip 可以正确翻译了。

以前,发现一个问题,Bullet list 和 Numbered list 工具栏按钮的下拉箭头的 tooltip 无法正确翻译。8.3.0 已解决此问题。这些 splitbuttons 的下拉箭头现在在悬停时显示正确翻译的 tooltip。

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

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

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

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

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

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