TinyMCE 5.10.5

Overview

TinyMCE 5.10.5 was released for TinyMCE Enterprise and Tiny Cloud on Wednesday, June 1st, 2022. It includes TinyMCE 5.10.5. These release notes provide an overview of the changes for TinyMCE 5.10.5, including:

This is the Tiny Cloud and TinyMCE Enterprise release notes. For information on the latest community version of TinyMCE, see: TinyMCE Changelog.

General bug fixes

TinyMCE 5.10.5 provides fixes for the following bugs:

base64 encoded images were corrupted and not displayed when added immediately following the string data:

When the string data: immediately preceded the insertion point, or was only separated from the insertion point by a Return character (ie, was on the line above the insertion point), adding an image in to a TinyMCE 5.x document caused the added image data to be parsed incorrectly.

Rather than displaying the encoded image, the mis-parsing caused the image to corrupt and present as a raw string of base64 text within html tags, which also displayed as text.

With this update, the code responsible for the mis-parsing now engages in more comprehensive sanity checking. These further sanity checks prevent the function from mis-parsing a user-entered data: string.

Consequently, adding images to a TinyMCE 5.x document now works in this circumstance: the image is not corrupted and displays at the insertion point as expected.

format_empty_lines did not work as documented

Previously, when format_empty_lines was set to true, lines that included no text (ie, a line consisting of just a Return) did not preserve inline formatting when saved.

So, for example, a line

<p>
<em>
<strong>
<span style="font-family: arial, helvetica, sans-serif;" ><br /></span>
</strong>
</em>
</p>

when saved, became

<p>
&nbsp;
</p>

That is, the line was preserved, but the formatting was not.

With this update, format_empty_lines: true behaves as it should (and as advertised), and formatting added to an otherwise empty line is preserved when saved.

By default format_empty_lines is set to false.

Some inline elements specified by the TinyMCE schema were not removed by default when empty

By default, the TinyMCE schema removes empty inline html elements.

Previously, however, some inline html elements — including s, u, var, cite, dfn, code, mark, q, sup, sub, and samp — were not removed when they were present but empty.

With this update, inline html elements such as those noted above will have the removeEmpty schema flag set, as expected.

The default TinyMCE schema did not include the <s> element

Previously, the default TinyMCE schema did not include the <s> element in the text inline elements section of the schema. The element was included in the full element list, however.

Consequently, although strike-through elements rendered as expected, anything that relied on the schema.getTextInlineElements() API may not have handled the <s> element correctly.

This update corrects the omission in the TinyMCE schema and <s> element is now correctly returned by the schema.getTextInlineElements() API.

Upgrading to the latest version of TinyMCE 5

The procedure for upgrading to the latest version of TinyMCE 5 depends on the deployment type.

Upgrading Tiny Cloud

Tiny Cloud provides the latest enterprise version of TinyMCE. For information on configuring Tiny Cloud, see: the Cloud deployment guide.

Upgrading TinyMCE Self-hosted manually

To upgrade to TinyMCE 5.10 using a manually downloaded package:

  1. Backup the tinymce/ directory so any customizations can be restored after the upgrade.

    Customizations for TinyMCE are typically stored in the following directories:

    tinymce/
    ├── icons/
    ├── langs/
    ├── plugins/
    ├── skins/
    │   ├── content/
    │   └── ui/
    └── themes/
  2. Download the latest version of TinyMCE.

    • For the TinyMCE Community Version, download tinymce_<VERSION>.zip from Get TinyMCE - Self-hosted releases, where <VERSION> is the latest version of TinyMCE.

    • For the TinyMCE Enterprise Version, download the TinyMCE Enterprise Bundle from Tiny Account > Downloads. The downloaded file will be named enterprise_latest.zip.

  3. Extract the downloaded .zip file to a temporary location.

  4. (If required) Install the latest language packs from Get TinyMCE - Language Packages.

  5. Copy customizations to the new tinymce/ directory. Ensure that only custom changes are added the new tinymce/ directory, such as:

    • Custom icons packs

    • Custom plugins

    • Custom skins

    • Custom themes

  6. Delete the existing tinymce/ directory and replace with the new tinymce/.

To simplify the upgrade process to future versions of TinyMCE:

  1. Host the TinyMCE customizations outside of the tinymce/ directory.

  2. Update your TinyMCE configuration as required:

    • Set the location of content CSS customizations using content_css.

    • Set the location of custom plugins using external_plugins.

    • Set the location of custom icon packages using icons_url instead of icons.

    • Set the location of custom localization packages using language_url instead of language.

    • Set the location of custom skin packages using skin_url instead of skin.

    • Set the location of custom themes using theme_url instead of theme.