Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .api-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
8.4.0
8.5.0
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions modules/ROOT/nav.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -408,6 +408,16 @@
** xref:tinymce-and-cors.adoc[Cross-Origin Resource Sharing (CORS)]
* Release information
** xref:release-notes.adoc[Release notes for {productname}]
// Remove un-used-for-this-particular-release entries.
*** {productname} 8.5.0
**** xref:8.5.0-release-notes.adoc#overview[Overview]
**** xref:8.5.0-release-notes.adoc#accompanying-premium-plugin-changes[Accompanying Premium Plugin changes]
**** xref:8.5.0-release-notes.adoc#accompanying-enhanced-skins-and-icon-packs-changes[Accompanying Enhanced Skins & Icon Packs changes]
**** xref:8.5.0-release-notes.adoc#improvements[Improvements]
**** xref:8.5.0-release-notes.adoc#additions[Additions]
**** xref:8.5.0-release-notes.adoc#changes[Changes]
**** xref:8.5.0-release-notes.adoc#bug-fixes[Bug fixes]
**** xref:8.5.0-release-notes.adoc#deprecated[Deprecated]
*** {productname} 8.4.0
**** xref:8.4.0-release-notes.adoc#overview[Overview]
**** xref:8.4.0-release-notes.adoc#new-premium-plugin[New Premium plugin]
Expand Down
439 changes: 439 additions & 0 deletions modules/ROOT/pages/8.5.0-release-notes.adoc

Large diffs are not rendered by default.

24 changes: 24 additions & 0 deletions modules/ROOT/pages/changelog.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,30 @@

NOTE: This is the {productname} Community version changelog. For information about the latest {cloudname} or {enterpriseversion} Release, see: xref:release-notes.adoc[{productname} Release Notes].

== xref:8.5.0-release-notes.adoc[8.5.0 - 2026-04-29]

### Added
* New `content_language` option to set the `lang` attribute on the iframe's `html` element or the inline editor's target element.
// #TINY-11214

### Improved
* Improved visual styling of inline diff highlights in Suggested Edits and TinyMCE AI plugin.
// #TINY-13958

### Fixed
* URIs with non-Latin1 characters were returning an error.
// #TINY-13938
* Alert and confirm dialogs were not announced properly by some screen readers.
// #TINY-13812
* Certain selections would delete the editor body, causing issues.
// #TINY-14149
* Certain combinations of divs inside of lists would cause issues turning off lists.
// #TINY-14070
* Script elements would incorrectly be removed by DomPurify when considered valid in the schema.
// #TINY-9655
* Iframe elements with children would incorrectly be removed by DomPurify.
// #TINY-9655

== xref:8.4.0-release-notes.adoc[8.4.0 - 2026-02-04]

### Added
Expand Down
4 changes: 4 additions & 0 deletions modules/ROOT/pages/content-localization.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
:description_short: Localize TinyMCE for your language, including directionality.
:description: These settings configure TinyMCE's language capabilities, including right-to-left support.

== Setting the default content language

include::partial$configuration/content_language.adoc[leveloffset=+1]

== Setting the language on content

include::partial$configuration/content_langs.adoc[leveloffset=+1]
Expand Down
2 changes: 1 addition & 1 deletion modules/ROOT/pages/editor-command-identifiers.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -530,7 +530,7 @@ include::partial$commands/tableofcontents-cmds.adoc[leveloffset=+3]
[[tinymceai]]
==== TinyMCE AI

The xref:tinymceai.adoc[TinyMCE AI (`+tinymceai+`)] plugin registers AI Chat and AI Review sidebars. The following subsection describes how to open and close them using a core editor command.
The xref:tinymceai.adoc[TinyMCE AI (`+tinymceai+`)] plugin registers AI Chat and AI Review sidebars, Quick Actions-related editor commands, and uses the core `+ToggleSidebar+` command for sidebar visibility. The following partial covers `+ToggleSidebar+`, floating-sidebar behavior, and plugin command names.

include::partial$commands/tinymceai-cmds.adoc[leveloffset=+3]

Expand Down
2 changes: 1 addition & 1 deletion modules/ROOT/pages/fullpagehtml.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ include::partial$misc/bundling-guide-link.adoc[]
[WARNING]
====
**Certain elements may be removed by XSS sanitization**
By default, {productname} sanitizes HTML content to protect against XSS attacks. Elements outside the HTML5 specification, such as `<script>`, are removed. Standard `<meta>` tags are preserved, but attributes not defined in the HTML5 spec (for example, the RDFa `property` attribute) require explicit configuration to be retained.
By default, {productname} sanitizes HTML content to protect against XSS attacks. Elements outside the HTML5 specification, such as `<script>`, are removed unless explicitly allowed through xref:content-filtering.adoc#valid_elements[`+valid_elements+`] or xref:content-filtering.adoc#extended_valid_elements[`+extended_valid_elements+`]. Standard `<meta>` tags are preserved, but attributes not defined in the HTML5 spec (for example, the RDFa `property` attribute) require explicit configuration to be retained.

If integrators encounter issues with required elements being removed, the following configuration options are available. These options reduce security and should be used with caution:

Expand Down
9 changes: 8 additions & 1 deletion modules/ROOT/pages/release-notes.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ This section lists the releases for {productname} {productmajorversion} and the

[cols="1,1"]
|===
a|
[.lead]
xref:8.5.0-release-notes.adoc#overview[{productname} 8.5.0]

Release notes for {productname} 8.5.0

a|
[.lead]
xref:8.4.0-release-notes.adoc#overview[{productname} 8.4.0]
Expand Down Expand Up @@ -85,5 +91,6 @@ xref:8.0-release-notes.adoc#overview[{productname} 8.0.0]

Release notes for {productname} 8.0.0

a|
// Uncomment the dummy cell when the number of cells in the table is odd to ensure the table renders correctly.
// a|
|===
2 changes: 1 addition & 1 deletion modules/ROOT/pages/tinymceai-actions.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ The following table lists built-in Quick Actions.

|**Fix Grammar** |`ai-quickactions-check-grammar` |`fix-grammar` |Correct grammar, spelling, and punctuation errors. |✓ |✓

|**Adjust length** |`ai-quickactions-change-length` |`make-shorter`, `make-longer` |Shorten or lengthen the selection. Each option is its own system action. |✓ |✓
|**Change length** |`ai-quickactions-change-length` |`make-shorter`, `make-longer` |Shorten or lengthen the selection. Each option is its own system action. |✓ |✓

|**Adjust Tone**
a|
Expand Down
34 changes: 21 additions & 13 deletions modules/ROOT/pages/tinymceai-review.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ image::tinymceai/tinymce-ai-review-sidebar-command-categories-proofread-clarity.
[[integration]]
== Integration

To start using the Review feature, add `+tinymceai+` to the plugins option. This will automatically add the image:icons-premium/ai-review.svg[Review icon,24px] Review toolbar button and menu item to the default {productname} toolbar and menu.
To start using the Review feature, add `+tinymceai+` to the plugins configuration option. This will automatically add the image:icons-premium/ai-review.svg[Review icon,24px] Review toolbar button and menu item to the default {productname} toolbar and menu.

See xref:tinymceai.adoc[Plugin Reference] for more information regarding installation and enabling AI features.

Expand All @@ -42,7 +42,7 @@ While in the Review Mode, the editor remains read-only and allows browsing sugge

image::tinymceai/tinymce-ai-review-improve-readability-suggestion-cards-and-underlines.png[{pluginname} Review sidebar with suggestions,width=80%]

Review suggestions can be individually skipped or applied by clicking the corresponding buttons. Changes that were accepted or dismissed become greyed out in the interface. The "Complete" button in the top of the sidebar enables actions such as:
Review suggestions can be individually skipped or applied by clicking the corresponding buttons. Changes that were accepted or dismissed become grayed out in the interface. The "Complete" button in the top of the sidebar enables actions such as:

- Skipping or applying the remaining suggestions in bulk
- Completing the review with the currently applied suggestions (and skipping the rest)
Expand All @@ -63,20 +63,30 @@ Built-in system reviews are listed below. The **Editor** column is the label in

|**Improve readability** |Readability |Improve readability through sentence structure, paragraph structure, transitions, word choice, and reading level. |✓ |✓

|**Adjust length** |Length Optimization |Shorten or lengthen the text while preserving key information. The editor offers _Longer_ and _Shorter_ options. |✓ |✓
|**Change length** |Length Optimization |Shorten or lengthen the text while preserving key information. The editor offers _Longer_ and _Shorter_ options. |✓ |✓

|**Adjust tone and style** |Tone Adjustment |Adjust tone and style. The editor includes _Casual_, _Direct_, _Friendly_, _Confident_, and _Professional_ options. |✓ |✓

|**Custom review** |— |xref:tinymceai-review.adoc#custom-review-choose-review[Custom review]: custom prompt and model; streams like other reviews. |✓ |✓ (custom review calls endpoint)

| |Translation |Translate between languages with cultural adaptation. | |✓
|===

[NOTE]
====
* A checkmark in the Editor UI column means that review type can appear in the Review sidebar when it is listed in xref:tinymceai.adoc#tinymceai_reviews[`tinymceai_reviews`].
* Custom reviews (analysis defined with a prompt) are available through the xref:tinymceai-review.adoc#reviews-custom-reviews[Custom reviews (API)]. _Note: The same capability in the Review sidebar is coming soon._
* xref:tinymceai-review.adoc#custom-review-choose-review[Custom review] is included in the Review sidebar by default. The xref:tinymceai-review.adoc#reviews-custom-reviews[Custom reviews (API)] section describes the REST endpoint used for the same streaming review flow.
* Translation Review is API-only (not listed in the Review sidebar); see the xref:tinymceai-review.adoc#built-in-reviews[Translation row] in the table above. For translation from the editor, see **Translate** in xref:tinymceai-actions.adoc#quick-actions-reference-table[Quick Actions reference table].
====

[[custom-review-choose-review]]
== Custom review

The Review sidebar includes a **Custom review** category by default. A natural-language prompt can be entered, and an AI model can be selected when xref:tinymceai.adoc#tinymceai_allow_model_selection[`tinymceai_allow_model_selection`] allows it; the review runs from **Run**. The document is analyzed with streaming suggestions like xref:tinymceai-review.adoc#review-sidebar-and-built-in-reviews[built-in reviews]; **Run** remains disabled until the prompt is entered and a model is selected. To hide Custom review, remove `+'ai-reviews-custom'+` from xref:tinymceai.adoc#tinymceai_reviews[`tinymceai_reviews`].

[TIP]
The backend uses the custom review call (`POST /v1/reviews/custom/calls`) with `content`, `prompt`, and `model` in the request body. After a run completes, **Retry** in the Review UI can re-run the last review with the same parameters for both system and custom reviews.

[[review-configuration]]
== Configuration

Expand All @@ -92,7 +102,7 @@ The Review plugin feature is built on top of the Reviews API, which provides RES
Reviews use streaming output with Server-Sent Events for real-time feedback as suggestions are generated. Each review type is optimized for specific improvement tasks, providing consistent, high-quality analysis of text structure, style, and quality. Reviews provide specific, actionable recommendations for content improvement.

[[reviews-system-reviews-api]]
=== System Reviews
=== System reviews

System reviews are default review operations for common use cases, which each use the AI agent most suitable for their functionality. The API includes one endpoint for running system reviews, which is passed the review name.

Expand All @@ -103,26 +113,24 @@ For endpoint details, request and response schemas, authentication, and streamin
[[reviews-custom-reviews]]
=== Custom reviews (API)

Integrators can also define custom reviews using the Custom Review API endpoint, which returns a output in a similar manner to system reviews but which takes a custom prompt to define the analysis behavior. Custom reviews can be as simple as checking for specific words or phrases, or as complex as applying a company style guide that includes business logic, specific terminology, and more.

See https://tinymceai.api.tiny.cloud/docs#tag/Reviews[Reviews API] for the endpoint, parameters, and examples.
Integrators can also call the Custom Review API endpoint directly. It streams suggestions in the same way as system reviews but takes a custom `prompt` (and `model`) with document `content` in the request body. Custom reviews can be as simple as checking for specific words or phrases, or as complex as applying a company style guide that includes business logic, specific terminology, and more. See https://tinymceai.api.tiny.cloud/docs#tag/Reviews[Reviews API] for the endpoint, parameters, and examples.

The Review sidebar only exposes those built-in types for now; sidebar support for custom reviews is coming soon.
Users can also run custom reviews directly from the editor through the xref:tinymceai-review.adoc#custom-review-choose-review[Custom review] category in the Review sidebar.

Custom reviews require the `ai:reviews:custom` permission in the JWT token.

[[reviews-streaming]]
=== Streaming Responses
=== Streaming responses

Reviews use Server-Sent Events (SSE) for real-time streaming results. See the xref:tinymceai-streaming.adoc[Streaming Responses guide] for detailed implementation information.
Reviews use Server-Sent Events (SSE) for real-time streaming results. See the xref:tinymceai-streaming.adoc[Streaming responses guide] for detailed implementation information.

[[reviews-api-reference]]
=== API Reference
=== API reference

The https://tinymceai.api.tiny.cloud/docs#tag/Reviews[Reviews API] reference (interactive OpenAPI documentation) is the full source for endpoints, request and response schemas, authentication, system and custom review calls, worked examples, and streaming review responses.

[[related-features]]
== Related Features
== Related features

* xref:tinymceai-chat.adoc[AI chat]: For interactive discussions with document analysis and context.
* xref:tinymceai-actions.adoc[Quick actions]: Shortcuts to individual AI operations on a selection or range (transformations, translation, chat, and custom actions).
1 change: 0 additions & 1 deletion modules/ROOT/pages/tinymceai.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -140,4 +140,3 @@ The {pluginname} plugin provides the following {productname} commands.

include::partial$commands/{plugincode}-cmds.adoc[]


58 changes: 56 additions & 2 deletions modules/ROOT/partials/commands/tinymceai-cmds.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[[tinymceai-toggling-sidebars]]
.Toggling the AI Chat and AI Review sidebars
=== Toggling the AI Chat and AI Review sidebars

AI Chat and AI Review use sidebars registered by the plugin. To show or hide them programmatically, use the core `+ToggleSidebar+` command (listed in the xref:editor-command-identifiers.adoc#miscellaneous-core-commands[Miscellaneous Core Commands] table), not a command defined by the TinyMCE AI plugin. Pass the sidebar identifier as the third argument:
AI Chat and AI Review use sidebars registered by the plugin. To show or hide them programmatically, use the core `+ToggleSidebar+` command (listed in the xref:editor-command-identifiers.adoc#miscellaneous-core-commands[Miscellaneous Core Commands] table), not a command defined by the `+tinymceai+` plugin. Pass the sidebar identifier as the third argument:

* `+'tinymceai-chat'+` — AI Chat
* `+'tinymceai-review'+` — AI Review
Expand All @@ -18,3 +18,57 @@ tinymce.activeEditor.execCommand('ToggleSidebar', false, 'tinymceai-chat');
// Open the AI Review sidebar
tinymce.activeEditor.execCommand('ToggleSidebar', false, 'tinymceai-review');
----

NOTE: These commands work regardless of xref:tinymceai.adoc#tinymceai_sidebar_type[`tinymceai_sidebar_type`] (`+'static'+` or `+'floating'+`). The `+ToggleSidebar+` event and `+queryCommandValue('ToggleSidebar')+` also behave the same for both sidebar types.

[[tinymceai-plugin-commands]]
=== TinyMCE AI plugin commands

The xref:tinymceai.adoc[`tinymceai`] plugin registers the following editor commands. They mirror the Quick Actions and related UI: each invocation returns immediately while the plugin performs any network and UI work asynchronously.

[cols="2,2,3",options="header"]
|===
|Command |Third argument |Description

|`+TinyMCEAIQuickActionImproveWriting+` | |Runs the **Improve writing** quick action.
|`+TinyMCEAIQuickActionContinueWriting+` | |Runs the **Continue writing** quick action.
|`+TinyMCEAIQuickActionCheckGrammar+` | |Runs the **Fix grammar** quick action.
|`+TinyMCEAIQuickActionMakeShorter+` | |Runs **Make shorter**.
|`+TinyMCEAIQuickActionMakeLonger+` | |Runs **Make longer**.
|`+TinyMCEAIQuickActionToneCasual+` | |Runs **More casual** tone.
|`+TinyMCEAIQuickActionToneDirect+` | |Runs **More direct** tone.
|`+TinyMCEAIQuickActionToneFriendly+` | |Runs **More friendly** tone.
|`+TinyMCEAIQuickActionToneConfident+` | |Runs **More confident** tone.
|`+TinyMCEAIQuickActionToneProfessional+` | |Runs **More professional** tone.
|`+TinyMCEAIQuickActionTranslate+` |`+string+` |Runs **Translate** with the given language label (same string family as xref:tinymceai.adoc#tinymceai_languages[`tinymceai_languages`] `+language+` values).
|`+TinyMCEAIQuickActionCustom+` |`+{ prompt, model }+` |Runs a custom quick action with the given prompt and model (same behavior as xref:tinymceai.adoc#tinymceai_quickactions_custom[`tinymceai_quickactions_custom`] preview actions).
|`+TinyMCEAIQuickActionsExplain+` | |Opens Chat with the built-in **Explain** prompt.
|`+TinyMCEAIQuickActionsSummarize+` | |Opens Chat with the built-in **Summarize** prompt.
|`+TinyMCEAIQuickActionsHighlightKeyPoints+` | |Opens Chat with the built-in **Highlight key points** prompt.
|`+TinyMCEAIChatPrompt+` |`+{ prompt, displayedPrompt? }+` |Opens the Chat sidebar if needed, then sends `+prompt+` to the back end. Optional `+displayedPrompt+` controls the label shown in the chat UI when it differs from the text sent to the model.
|===

[NOTE]
====
Command names use the `+TinyMCEAIQuickActions…+` prefix (with an `+s+`) for **Explain**, **Summarize**, and **Highlight key points** — these map to the xref:tinymceai.adoc#tinymceai_quickactions_chat_prompts[chat prompts] submenu, not to standalone `+TinyMCEAIQuickAction…+` spellings.
====

.Example: translate and custom quick action
[source,js]
----
tinymce.activeEditor.execCommand('TinyMCEAIQuickActionTranslate', false, 'swedish');

tinymce.activeEditor.execCommand('TinyMCEAIQuickActionCustom', false, {
prompt: 'Uppercase text',
model: 'gpt-4.1'
});
----

.Example: chat prompt with a shorter label in the UI
[source,js]
----
tinymce.activeEditor.execCommand('TinyMCEAIChatPrompt', false, {
prompt: 'Explain the current selection in Klingon',
displayedPrompt: 'Explain'
});
----
24 changes: 24 additions & 0 deletions modules/ROOT/partials/configuration/content_language.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
[[content_language]]
== `content_language`

The `+content_language+` option sets the default content language of the editor by applying a `+lang+` attribute to the document element. In classic (iframe) mode, the attribute is set on the `+<html>+` element inside the editor's iframe. In inline mode, the attribute is set on the target element specified in the editor's `+selector+` option.

Setting this option helps meet accessibility standards such as link:https://www.w3.org/WAI/standards-guidelines/act/rules/b5c3f8/[WCAG Success Criterion 3.1.1 (Language of Page)], which requires that the default human language of a web page can be programmatically determined.

NOTE: This option is separate from the xref:ui-localization.adoc#language[`+language+`] option, which controls the language of the {productname} user interface. The `+content_language+` option controls only the language attribute of the editor content area.

When the xref:introduction-to-tiny-spellchecker.adoc[Spell Checker] plugin is active, it uses `+content_language+` as its default proofing language. If `+content_language+` is not set, the Spell Checker falls back to xref:introduction-to-tiny-spellchecker.adoc#spellchecker_language[`+spellchecker_language+`].

*Type:* `+String+`

*Default value:* Not set (`+undefined+`)

=== Example: using `content_language`

[source,js]
----
tinymce.init({
selector: 'textarea', // change this value according to your HTML
content_language: 'fr'
});
----
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
[[spellchecker_language]]
== `+spellchecker_language+`

IMPORTANT: This option has been marked as *deprecated* as of {productname} 8.5. It will be removed in a future major release. Use xref:content-localization.adoc#content_language[`+content_language+`] instead, which sets both the default content language and the Spell Checker proofing language.

This option specifies the default language used by Spell Checker.

*Type:* `+String+`
Expand Down
Loading
Loading