---
title: "TinyMCE 5.10.5"
description: "Release notes for TinyMCE 5.10.5"
canonical_url: "https://www.tiny.cloud/docs/tinymce/5/release-notes5105/"
md_url: "https://www.tiny.cloud/docs/tinymce/5/release-notes5105/index.md"
version: "5"
last_updated: "2024-04-09T10:06:54Z"
tokens: 1493
---
Important This page documents TinyMCE 5. For new projects, Tiny recommends using the latest, most up-to-date version. [See TinyMCE 8 documentation](../../latest/).
# TinyMCE 5.10.5

## Overview

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

- [General bug fixes](#general-bug-fixes)
- [Upgrading to the latest version of TinyMCE 5](#upgrading-to-the-latest-version-of-tinymce-5)

> **Note:** This is the Tiny Cloud and TinyMCE Enterprise release notes. For information on the latest community version of TinyMCE, see: [TinyMCE Changelog](../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

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

```html
<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.

> **Note:** 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](#upgradingtinycloud).
- [Upgrading TinyMCE Self-hosted manually](#upgradingtinymceself-hostedmanually).

### Upgrading Tiny Cloud

Tiny Cloud provides the latest enterprise version of TinyMCE. For information on configuring Tiny Cloud, see: [the Cloud deployment guide](../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:

```sh
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](/get-tiny/self-hosted/), where `<VERSION>` is the latest version of TinyMCE.
  - For the TinyMCE Enterprise Version, download the **TinyMCE Enterprise Bundle** from [Tiny Account > Downloads](/my-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](/get-tiny/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/`.

> **Note:** 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`](../content-appearance/#content_css).
> - Set the location of custom plugins using [`external_plugins`](../integration-and-setup/#external_plugins).
> - Set the location of custom icon packages using [`icons_url`](../editor-appearance/#icons_url) instead of `icons`.
> - Set the location of custom localization packages using [`language_url`](../content-localization/#language_url) instead of `language`.
> - Set the location of custom skin packages using [`skin_url`](../editor-appearance/#skin_url) instead of `skin`.
> - Set the location of custom themes using [`theme_url`](../editor-appearance/#theme_url) instead of `theme`.
