Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
131 commits
Select commit Hold shift + click to select a range
0e97c85
DOC-3243: TinyMCE 8.4.0 Release Documentation and Community Changelog.
kemister85 Feb 2, 2026
82bd763
Merge tinymce/8 into feature/8/DOC-3243
kemister85 Mar 2, 2026
ad7fd2a
DOC-3356: Initial file setup.
kemister85 Feb 2, 2026
fa72293
DOC-3356: Initial documentation structure and layout content.
kemister85 Feb 9, 2026
8363b4d
DOC-3356: Add JWT authentication guides for plugin, major content cha…
kemister85 Feb 9, 2026
e2301b7
DOC-3356: Update premium plugins link to point to intro page.
kemister85 Feb 9, 2026
9384f43
DOC-3358: Restructure JWT guides, fix broken partials across JWT guides.
kemister85 Feb 11, 2026
e3382c5
DOC-3356: Suggested improvements, copy edits and initial review changes.
kemister85 Feb 16, 2026
b37b79a
DOC-3356: Update, improve example and context around tinymceai_quicka…
kemister85 Feb 16, 2026
8b5e4b1
DOC-3356: Restructure JWT auth docs, add permissions page with tables…
kemister85 Feb 17, 2026
31d0a7c
DOC-3356: Move limits and models in nav.adoc file.
kemister85 Feb 18, 2026
5cdccc9
DOC-3356: Refactor JWT intro page to include refinded details for tin…
kemister85 Feb 19, 2026
4564cfc
DOC-3356: Update options, fetch examples for JWT.
kemister85 Feb 25, 2026
cd713cb
DOC-3356: Remove toolbar button identifiers for buttons missing icons.
kemister85 Feb 26, 2026
ae7e168
Fix llms-full.txt URL in generated llms.txt (#4004)
kemister85 Mar 4, 2026
0f7ae0e
DOC-3356: Add svg icons
kemister85 Mar 5, 2026
80966b7
DOC-3356: Update init content for tinymceai demo.
kemister85 Mar 5, 2026
6c9a1c5
DOC-3356: Update icons and icon_list.
kemister85 Mar 9, 2026
6f24a3c
DOC-3356: Add missing tinymceai_languages option and adhoc fixed.
kemister85 Mar 9, 2026
b63d217
DOC-3356: copy edits, context styling corrections.
kemister85 Mar 10, 2026
b2f8948
DOC-3356: Adding -toc page-role to tinymceai demo pages to hide TOC
kemister85 Mar 10, 2026
f506dd7
DOC-3356: Add note about permissions, and model-configuration to JWT …
kemister85 Mar 10, 2026
eeb948c
DOC-3356: Add missing chat_welcome_message option and update JWT abou…
kemister85 Mar 10, 2026
e22d4e2
DOC-3356: update events.adoc to remove mention of tinymceai events
kemister85 Mar 10, 2026
3d6d7d8
Document tinymceai_reviews option and improve TinyMCE AI docs accuracy
kemister85 Mar 17, 2026
785fcba
DOC-3356: Oxide-only icon list, premium icons in icons-premium, TinyM…
kemister85 Mar 17, 2026
ebb6d99
Update TinyMCE AI demos per documentation strategy
kemister85 Mar 22, 2026
d801d6d
Improve TinyMCE AI docs clarity without removing content
kemister85 Mar 23, 2026
ce8ecbb
Use colon instead of dash for TinyMCE AI list item format
kemister85 Mar 23, 2026
6fb2876
Fix translate action docs: use language names not ISO codes
kemister85 Mar 23, 2026
bce9769
TinyMCE AI docs: improve intro, on-premises section, remove unused RE…
kemister85 Mar 23, 2026
90a1883
TinyMCE AI docs: link plugin config to tinymceai.adoc, remove redunda…
kemister85 Mar 24, 2026
36e7d91
TinyMCE AI docs: models page improvements, Actions TIP, options format
kemister85 Mar 24, 2026
9e81aea
TinyMCE AI API quick start: fix JWT credentials instructions
kemister85 Mar 24, 2026
2e129c1
DOC-3356: JWT PHP guide - fix heredoc formatting, use time() for iat/…
kemister85 Mar 24, 2026
5904939
DOC-3356: Add trial demo identity service to JWT guide
kemister85 Mar 24, 2026
5c0e531
DOC-3356: Clarify tinymceai_token_provider return shape in models exa…
kemister85 Mar 25, 2026
2c88a92
DOC-3356: Deduplicate AI API reference sections and unify Quick Actio…
kemister85 Mar 25, 2026
bd57f19
DOC-3356: Document TinyMCE AI model limits via Models API
kemister85 Mar 25, 2026
d7f0d0e
DOC-3356: Stack multi-action API names in Quick Actions table
kemister85 Mar 25, 2026
10fd9c7
docs: add TinyMCE AI screenshots and update plugin pages
kemister85 Mar 25, 2026
3eb33f1
docs: set TinyMCE AI live demo editor height to 800px
kemister85 Mar 25, 2026
de7791a
Update modules/ROOT/partials/commands/tinymceai-cmds.adoc
kemister85 Mar 25, 2026
162033f
Update modules/ROOT/partials/configuration/tinymceai_options.adoc
kemister85 Mar 25, 2026
6eb4906
Update modules/ROOT/partials/configuration/tinymceai_options.adoc
kemister85 Mar 25, 2026
80d3a93
Update modules/ROOT/partials/configuration/tinymceai_options.adoc
kemister85 Mar 25, 2026
74e9a92
Update modules/ROOT/partials/configuration/tinymceai_options.adoc
kemister85 Mar 25, 2026
4232676
Update modules/ROOT/partials/configuration/tinymceai_options.adoc
kemister85 Mar 25, 2026
229d86f
Update modules/ROOT/partials/menu-item-ids/tinymceai-menu-items.adoc
kemister85 Mar 25, 2026
91f4231
Update modules/ROOT/partials/toolbar-button-ids/tinymceai-toolbar-but…
kemister85 Mar 25, 2026
0803800
Update modules/ROOT/partials/toolbar-button-ids/tinymceai-toolbar-but…
kemister85 Mar 25, 2026
42d131a
Update modules/ROOT/partials/configuration/tinymceai_options.adoc
kemister85 Mar 25, 2026
6ed3a99
Docs: TinyMCE AI updates from review feedback
kemister85 Mar 25, 2026
69e4743
Align TinyMCE AI live demos with full sample config; simplify example.js
kemister85 Mar 26, 2026
594dae4
chore: empty commit to trigger docs preview workflow
kemister85 Mar 26, 2026
ade0dd4
ci: allow manual Preview Create/Update runs via workflow_dispatch
kemister85 Mar 26, 2026
0bac3e8
ci: revert manual workflow_dispatch from preview_create workflow
kemister85 Mar 26, 2026
8121a0f
ci: add manual preview trigger and extra pull_request types (DOC-3399)
kemister85 Mar 26, 2026
8cb6768
Update modules/ROOT/pages/tinymceai-actions-plugin.adoc
kemister85 Mar 26, 2026
b014f67
Apply suggestions from code review
kemister85 Mar 26, 2026
fd252d7
Apply suggestions from code review
kemister85 Mar 26, 2026
50b61cc
docs: address TinyMCE AI review feedback for nav, chat, plugin, and o…
kemister85 Mar 26, 2026
967bfc1
Update modules/ROOT/pages/tinymceai-models.adoc
kemister85 Mar 26, 2026
20acde4
Update modules/ROOT/pages/tinymceai-introduction.adoc
kemister85 Mar 26, 2026
1bad9d4
Update modules/ROOT/partials/toolbar-button-ids/tinymceai-toolbar-but…
kemister85 Mar 26, 2026
8e5b06a
Update modules/ROOT/pages/tinymceai-actions-plugin.adoc
kemister85 Mar 26, 2026
d86ceae
Update modules/ROOT/pages/tinymceai-models.adoc
kemister85 Mar 26, 2026
62d0296
DOC-3356: Clarify Translation Review note and add cross-references.
kemister85 Mar 26, 2026
a87a456
DOC-3356: Add plugin and models xrefs on TinyMCE AI introduction.
kemister85 Mar 26, 2026
81bb291
Update modules/ROOT/partials/configuration/tinymceai_options.adoc
kemister85 Mar 26, 2026
22f13d6
DOC-3356: Clarify tinymceai_token_provider return shape per review fe…
kemister85 Mar 26, 2026
fcef564
DOC-3356: Expand tinymceai_chat_fetch_sources description per review.
kemister85 Mar 26, 2026
31979ff
DOC-3356: Include tinymceai_chat_fetch_source in fetch_sources example.
kemister85 Mar 26, 2026
20a1098
ci: use canonical raw.githubusercontent URL for redirects.json in pre…
kemister85 Mar 26, 2026
65dee5f
Merge branch 'feature/8.4.0/DOC-3243' into feature/8.4.0/DOC-3356
kemister85 Mar 26, 2026
341700a
Apply suggestions from code review
kemister85 Mar 27, 2026
ca410f9
DOC-3356: Align tinymceai plugin examples and address review feedback
kemister85 Mar 27, 2026
5b8d55b
Docs: address TinyMCE AI review feedback
kemister85 Mar 27, 2026
c51f3fd
Docs: remove redundant intro on TinyMCE AI limits page
kemister85 Mar 27, 2026
621c4a8
Docs: replace enforces with applies on AI limits overview
kemister85 Mar 27, 2026
e9ccf0a
Remove unused TinyMCE AI privacy stub page
kemister85 Mar 27, 2026
43fad79
Update modules/ROOT/pages/tinymceai-models.adoc
kemister85 Mar 27, 2026
842336e
Docs: clarify JWT as source of truth for allowed AI models
kemister85 Mar 27, 2026
e8e318b
Remove redundant tinymceai_token_provider note from models page
kemister85 Mar 27, 2026
74a0b55
Clarify models API limits wording in TinyMCE AI docs
kemister85 Mar 27, 2026
e959eb2
Address review feedback on TinyMCE AI streaming page
kemister85 Mar 27, 2026
af669e3
DOC-3356: Clarify JWT auth and trial demo in AI API quick start
kemister85 Mar 27, 2026
f385d5f
DOC-3356: Clarify editor integration copy on AI integration options page
kemister85 Mar 27, 2026
5279e0c
Update modules/ROOT/partials/configuration/tinymceai_options.adoc
kemister85 Mar 27, 2026
0975593
Update modules/ROOT/partials/configuration/tinymceai_options.adoc
kemister85 Mar 27, 2026
e3d434d
Update modules/ROOT/partials/configuration/tinymceai_options.adoc
kemister85 Mar 27, 2026
f9dafb7
Update modules/ROOT/partials/configuration/tinymceai_options.adoc
kemister85 Mar 27, 2026
16b450c
Nest AI Assistant (legacy) under TinyMCE AI in nav
kemister85 Mar 27, 2026
d45220d
Add TinyMCE AI feature banner to premium plugins index
kemister85 Mar 27, 2026
850d402
Fix TinyMCE AI feature banner: single passthrough preserves markup be…
kemister85 Mar 27, 2026
4a8728a
DOC-3356: Fix css issue.
kemister85 Mar 27, 2026
cd63133
Fix docs UI: remove literal <s> from nav and 8.4.0 release notes
kemister85 Mar 27, 2026
8ec2f2a
Revert premium plugins TinyMCE AI feature banner
kemister85 Mar 27, 2026
9a6da30
Reintroduce TinyMCE AI premium plugins feature banner
kemister85 Mar 27, 2026
6559a04
Document GPT-5.4, Claude 4.6 Sonnet, and Gemini 3.1 Pro in AI models …
kemister85 Mar 27, 2026
8429de3
Document trial demo identity service for tinymceai_token_provider
kemister85 Mar 27, 2026
1ce92d0
Link Conversations API section to interactive OpenAPI documentation
kemister85 Mar 27, 2026
8135a5e
Refine Quick Actions and Review docs; remove redundant toolbar screen…
kemister85 Mar 27, 2026
e16751f
Reorder Review plugin screenshots to match adjacent text
kemister85 Mar 27, 2026
ed724ab
Link tinymceai_reviews from Review commands NOTE
kemister85 Mar 29, 2026
2c1ecc9
DOC-3356: Address Review plugin doc feedback on terminology and Quick…
kemister85 Mar 29, 2026
acbdd33
Docs: align Quick Actions and Review framing with Review page
kemister85 Mar 29, 2026
cb5a9b9
Docs: link Node.js and PHP JWT guides from API quick start
kemister85 Mar 29, 2026
21110bd
Docs: add blank line before token endpoint list in JWT intro
kemister85 Mar 29, 2026
775a3a8
Docs: align models table with GET /v1/models and fix examples
kemister85 Mar 29, 2026
2b53be6
Docs: address Chat and Introduction review feedback
kemister85 Mar 29, 2026
4f80113
Docs: clarify TinyMCE AI toolbar and Quickbars integration for Quick …
kemister85 Mar 30, 2026
498208d
Docs: correct AI Chat model selection behavior in tinymceai-chat
kemister85 Mar 30, 2026
2939892
Docs: clarify Expand control for chat modification history
kemister85 Mar 30, 2026
0ad6f2a
Docs: align Quick Actions table with Review page terminology
kemister85 Mar 30, 2026
b01fa11
Docs: place stateless Quick Actions copy early; clarify vs Review
kemister85 Mar 30, 2026
30c1fa9
Docs: drop duplicate Quick Actions vs Review cross-ref from Actions API
kemister85 Mar 30, 2026
9ed5c95
Docs: use default instead of predefined for TinyMCE AI actions and re…
kemister85 Mar 30, 2026
91fa046
Docs: clarify custom Quick Actions types without preview rendering ja…
kemister85 Mar 30, 2026
9e0dded
Docs: clarify JWT flow, token endpoint, and tinymceai_token_provider …
kemister85 Mar 30, 2026
f848c81
Docs: reorder AI API quick start next steps to lead with models
kemister85 Mar 30, 2026
19a6014
Docs: fix circular streaming xrefs; point to OpenAPI for event payloads
kemister85 Mar 30, 2026
7524600
DOC-3356: Rename TinyMCE AI Review and Actions pages for URL clarity
kemister85 Mar 30, 2026
3e1c7e9
Docs: update TinyMCE AI JWT trial examples and clarify token provider
kemister85 Mar 30, 2026
08200a6
Revert "ci: use canonical raw.githubusercontent URL for redirects.jso…
kemister85 Mar 30, 2026
4b9e75e
Revert "ci: add manual preview trigger and extra pull_request types (…
kemister85 Mar 30, 2026
a34758e
Docs: expand TinyMCE AI 8.4.0 release notes with outcomes and trial tip
kemister85 Mar 30, 2026
b5ec2ff
Docs: add Chat, Review, and Actions toolbar icons to 8.4.0 release notes
kemister85 Mar 30, 2026
7f6f48f
Update modules/ROOT/pages/8.4.0-release-notes.adoc
kemister85 Mar 30, 2026
03642e0
Update modules/ROOT/pages/8.4.0-release-notes.adoc
kemister85 Mar 30, 2026
9a38dcf
Update modules/ROOT/pages/8.4.0-release-notes.adoc
kemister85 Mar 30, 2026
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 -scripts/README-llm-files.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ The files are generated in `modules/ROOT/attachments/`:

**Post-build:** Files are moved to the root directory (handled in separate PR) and accessible at:
- `https://www.tiny.cloud/docs/tinymce/latest/llms.txt`
- `https://www.tiny.cloud/docs/tinymce/latest/llms-full.txt`
- `https://www.tiny.cloud/docs/llms-full.txt`

## How It Works

Expand Down
3 changes: 2 additions & 1 deletion -scripts/generate-llm-files.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ const http = require('http');
const sanitizeHtml = require('sanitize-html');

const BASE_URL = 'https://www.tiny.cloud/docs/tinymce/latest';
const DOCS_ROOT_URL = 'https://www.tiny.cloud/docs';
const OUTPUT_DIR = path.join(__dirname, '../modules/ROOT/attachments');

// Fetch sitemap from URL or file
Expand Down Expand Up @@ -1187,7 +1188,7 @@ function App() {

## Complete Documentation

For a complete list of all ${urls.length} documentation pages, see [llms-full.txt](${BASE_URL}/llms-full.txt).
For a complete list of all ${urls.length} documentation pages, see [llms-full.txt](${DOCS_ROOT_URL}/llms-full.txt).

`;
}
Expand Down
6 changes: 4 additions & 2 deletions antora.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ asciidoc:
companyurl: https://www.tiny.cloud
cdnurl: https://cdn.tiny.cloud/1/no-api-key/tinymce/8/tinymce.min.js
tdcdnurl: https://cdn.tiny.cloud/1/_your_api_key_/tinydrive/8/tinydrive.min.js
tinymce_live_demo_url: https://cdn.tiny.cloud/1/qagffr3pkuv17a8on1afax661irst1hbr4e6tbv888sz91jc/tinymce/8/tinymce.min.js
tinymce_live_demo_url: https://cdn.tiny.cloud/1/qagffr3pkuv17a8on1afax661irst1hbr4e6tbv888sz91jc/tinymce/8-testing/tinymce.min.js
tinydrive_live_demo_url: https://cdn.tiny.cloud/1/qagffr3pkuv17a8on1afax661irst1hbr4e6tbv888sz91jc/tinydrive/8/tinydrive.min.js
webcomponent_url: https://cdn.jsdelivr.net/npm/@tinymce/tinymce-webcomponent/dist/tinymce-webcomponent.min.js
jquery_url: https://cdn.jsdelivr.net/npm/@tinymce/tinymce-jquery@2/dist/tinymce-jquery.min.js
Expand All @@ -22,7 +22,9 @@ asciidoc:
dockerimageexporttopdf: registry.containers.tiny.cloud/pdf-converter-tiny
dockerimageexporttopdfwindows: registry.containers.tiny.cloud/pdf-converter-windows-tiny
# document converter placeholder variables
exportpdf_service_url: exportpdf_service_url placeholder
exportpdf_service_url: exportpdf_service_url placeholder
# TinyMCE AI demo API key
tinymceai_demo_api_key: qagffr3pkuv17a8on1afax661irst1hbr4e6tbv888sz91jc
# product variables
productname: TinyMCE
productmajorversion: 8
Expand Down
2 changes: 1 addition & 1 deletion modules/ROOT/attachments/llms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -101,5 +101,5 @@ function App() {

## Complete Documentation

For a complete list of all 395 documentation pages, see [llms-full.txt](https://www.tiny.cloud/docs/tinymce/latest/llms-full.txt).
For a complete list of all 395 documentation pages, see [llms-full.txt](https://www.tiny.cloud/docs/llms-full.txt).

51 changes: 51 additions & 0 deletions modules/ROOT/examples/live-demos/tinymceai-actions/example.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
// Step 1: Set up session - this should be part of the application's user management process.
// Open-source plugins below are only for editing the demo HTML (lists, links, tables). TinyMCE AI options are the focus.
tinymce.init({
selector: 'textarea#tinymceai-actions',
height: '800px',
plugins: ['tinymceai', 'advlist', 'lists', 'link', 'autolink', 'table', 'wordcount'],
toolbar: 'undo redo | tinymceai-chat tinymceai-review tinymceai-quickactions | styles | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link',
sidebar_show: 'tinymceai-chat',
tinymceai_token_provider: async () => {
return fetch('/api/tinymceai-token', { credentials: 'include' })
.then(resp => resp.text())
.then(token => ({ token }));
},
tinymceai_chat_fetch_sources: () => Promise.resolve([{
label: 'TinyMCE resources',
sources: [
{ id: 'docs', label: 'TinyMCE Documentation', type: 'web-resource' },
{ id: 'blog', label: 'Tiny Blog', type: 'web-resource' },
{ id: 'survey-2023', label: 'State of rich text editing 2023', type: 'web-resource' },
]
}]),
tinymceai_chat_fetch_source: (id) => {
const urls = {
'docs': 'https://www.tiny.cloud/docs/tinymce/latest/',
'blog': 'https://www.tiny.cloud/blog/',
'survey-2023': 'https://www.tiny.cloud/developer-survey-results-2023/',
};
return Promise.resolve({ type: 'web-resource', url: urls[id] });
},
tinymceai_quickactions_custom: [
{
type: 'chat',
title: 'Challenge',
prompt: 'Challenge statements, verify facts and identify assumptions'
}
],
tinymceai_languages: [
{ title: 'English', language: 'english' },
{ title: 'Chinese (Simplified)', language: 'chinese' },
{ title: 'Spanish', language: 'spanish' },
{ title: 'German', language: 'german' },
{ title: 'Japanese', language: 'japanese' },
{ title: 'Portuguese', language: 'portuguese' },
{ title: 'Swedish', language: 'swedish' },
{ title: 'Korean', language: 'korean' },
{ title: 'Hindi (Devanagari)', language: 'hindi devanagari' },
{ title: 'Italian', language: 'italian' },
{ title: 'Klingon', language: 'klingon' },
{ title: 'Dothraki', language: 'dothraki' },
]
});
57 changes: 57 additions & 0 deletions modules/ROOT/examples/live-demos/tinymceai-actions/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<textarea id="tinymceai-actions">
<h1>The Future of Content Creation: Integrating GenAI into Modern Workflows</h1>
<p>The landscape of digital content creation is undergoing a seismic shift. For years, the process of writing, editing, and publishing remained largely manual, requiring significant cognitive load for every draft. However, the emergence of Generative AI (GenAI) has introduced a new paradigm. By embedding intelligence directly into the tools where writing happens, organizations can unlock unprecedented levels of productivity and creativity.</p>
<figure class="image"><img style="width: 566px; aspect-ratio: 1536 / 1024; display: block; margin-left: auto; margin-right: auto;" src="https://tiny.ucarecdn.com/c273f5d9-8931-4f66-86a4-347a6137ca88/-/preview/" sizes="(min-width: 1536px) 1536px, 100vw" srcset="https://tiny.ucarecdn.com/c273f5d9-8931-4f66-86a4-347a6137ca88/-/resize/100x/ 100w,https://tiny.ucarecdn.com/c273f5d9-8931-4f66-86a4-347a6137ca88/-/resize/200x/ 200w,https://tiny.ucarecdn.com/c273f5d9-8931-4f66-86a4-347a6137ca88/-/resize/300x/ 300w,https://tiny.ucarecdn.com/c273f5d9-8931-4f66-86a4-347a6137ca88/-/resize/500x/ 500w,https://tiny.ucarecdn.com/c273f5d9-8931-4f66-86a4-347a6137ca88/-/resize/750x/ 750w,https://tiny.ucarecdn.com/c273f5d9-8931-4f66-86a4-347a6137ca88/-/resize/1000x/ 1000w,https://tiny.ucarecdn.com/c273f5d9-8931-4f66-86a4-347a6137ca88/-/resize/1250x/ 1250w,https://tiny.ucarecdn.com/c273f5d9-8931-4f66-86a4-347a6137ca88/-/resize/1500x/ 1500w,https://tiny.ucarecdn.com/c273f5d9-8931-4f66-86a4-347a6137ca88/-/preview/ 1536w" alt="Retro pop art illustration in red and blue halftone style showing a friendly robot collaborating with three people using laptops and tablets, symbolizing AI-assisted content creation and teamwork." height="357">
<figcaption>By embedding intelligence directly into the tools where writing happens, organizations unlock unprecedented levels of productivity and creativity.</figcaption>
</figure>
<h2>The Shift from External Tools to Native Integration</h2>
<p>Many early adopters of AI technology rely on external chat interfaces. While powerful, this "copy-paste" workflow introduces friction and disrupts the creative flow. Native integration&mdash;where the AI exists within the text editor itself&mdash;allows creators to remain focused. Instead of switching tabs to generate a summary or check facts, the AI acts as a collaborative partner that understands the context of the current document.</p>
<h3>Key Benefits of Integrated AI</h3>
<ul>
<li><strong>Contextual Awareness:</strong> AI can analyze existing text to suggest relevant follow-up points or maintain a consistent brand voice.</li>
<li><strong>Reduced Cognitive Load:</strong> By automating repetitive tasks like formatting and basic proofreading, writers can focus on high-level strategy and storytelling.</li>
<li><strong>Streamlined Collaboration:</strong> Integrated tools allow teams to brainstorm and refine ideas within a single shared environment, accelerating the approval process.</li>
<li><strong>Enhanced Accuracy:</strong> When connected to internal knowledge bases, GenAI can provide fact-checking capabilities that generic models lack.</li>
</ul>
<h2>Evaluating Workflow Improvements</h2>
<p>To understand the impact of GenAI integration, it is helpful to compare traditional workflows against AI-enhanced processes. The following table highlights common content tasks and how native AI transforms the output and efficiency for different stakeholders.</p>
<table style="width: 100%; border-collapse: collapse; margin-top: 20px; margin-bottom: 20px; border: 1px solid rgb(206, 212, 217);" border="1">
<thead>
<tr>
<th style="border-color: #ced4d9; background-color: #ecf0f1; width: 26.6364%;">Workflow Task</th>
<th style="border-color: #ced4d9; background-color: #ecf0f1; width: 35.8714%;">Traditional Method</th>
<th style="border-color: #ced4d9; background-color: #ecf0f1; width: 37.4922%;">GenAI-Enhanced Method</th>
</tr>
</thead>
<tbody>
<tr>
<td style="border-color: #ced4d9; width: 26.6364%;"><strong>Drafting</strong></td>
<td style="border-color: #ced4d9; width: 35.8714%;">Starting from a blank page.</td>
<td style="border-color: #ced4d9; width: 37.4922%;">AI-generated outlines and initial drafts.</td>
</tr>
<tr>
<td style="border-color: #ced4d9; width: 26.6364%;"><strong>Research</strong></td>
<td style="border-color: #ced4d9; width: 35.8714%;">Manual searching across multiple tabs.</td>
<td style="border-color: #ced4d9; width: 37.4922%;">Instant retrieval of internal/external data.</td>
</tr>
<tr>
<td style="border-color: #ced4d9; width: 26.6364%;"><strong>Tone Adjustment</strong></td>
<td style="border-color: #ced4d9; width: 35.8714%;">Manual rewriting for different audiences.</td>
<td style="border-color: #ced4d9; width: 37.4922%;">One-click conversion (e.g., Casual to Formal).</td>
</tr>
<tr>
<td style="border-color: #ced4d9; width: 26.6364%;"><strong>Summarization</strong></td>
<td style="border-color: #ced4d9; width: 35.8714%;">Reading full text and manual condensing.</td>
<td style="border-color: #ced4d9; width: 37.4922%;">Automated key takeaway generation.</td>
</tr>
<tr>
<td style="border-color: #ced4d9; width: 26.6364%;"><strong>Localization</strong></td>
<td style="border-color: #ced4d9; width: 35.8714%;">External translation services required.</td>
<td style="border-color: #ced4d9; width: 37.4922%;">In-editor multilingual support and translation.</td>
</tr>
</tbody>
</table>
<h2>Overcoming Adoption Challenges</h2>
<p>While the advantages are clear, implementing GenAI requires a strategic approach. Concerns regarding data privacy, output quality, and the "human touch" are common. <em>To address these, organizations should prioritize tools that offer "human-in-the-loop" functionality</em>. AI should be viewed as an assistant&mdash;a co-pilot that offers suggestions while leaving final editorial control in the hands of the writer.</p>
<p>Furthermore, technical teams must focus on the "integrator" experience. Providing developers with straightforward APIs and pre-built UI components ensures that these advanced features can be deployed quickly <strong>without the risk of building complex AI infrastructure from scratch</strong>. As we look toward the future, the goal is simple: technology that fades into the background, empowering creators to do their best work with less friction.</p>
</textarea>
112 changes: 112 additions & 0 deletions modules/ROOT/examples/live-demos/tinymceai-actions/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
// Step 1: Set up session - this should be part of the application's user management process. We simulate that here by creating a session for a random user.
const apiKey = '{{tinymceai_demo_api_key}}';
const isLoggedIn = fetch(`https://demo.api.tiny.cloud/1/${apiKey}/auth/random`, { method: "POST", credentials: "include" });

const mentions_fetch = async (query, success) => {
const searchPhrase = query.term.toLowerCase();
await fetch(`https://demouserdirectory.tiny.cloud/v1/users?q=${encodeURIComponent(searchPhrase)}`)
.then((response) => response.json())
.then((users) => success(users.data.map((userInfo) => ({
id: userInfo.id,
name: userInfo.name,
image: userInfo.avatar,
description: userInfo.custom.role
}))))
.catch(() => {});
};

const fetch_users = (userIds) => Promise.all(userIds.map((userId) => fetch(`https://demouserdirectory.tiny.cloud/v1/users/${userId}`).then((response) => response.json()).catch(() => ({ id: userId }))));

tinymce.init({
selector: 'textarea#tinymceai-actions',
height: '800px',
plugins: [
'autolink', 'link', 'emoticons', 'lists', 'table', 'advlist', 'searchreplace', 'wordcount', 'autocorrect', 'tinymcespellchecker', 'charmap', 'fullscreen', 'advcode', 'accordion', 'anchor', 'footnotes', 'powerpaste', 'importword', 'exportpdf', 'exportword', 'markdown', 'a11ychecker', 'typography', 'casechange', 'checklist', 'advtable', 'formatpainter', 'permanentpen', 'tableofcontents', 'help', 'math', 'linkchecker', 'media', 'mediaembed',
'quickbars', 'tinymceai', 'tinycomments', 'mentions', 'revisionhistory', 'suggestededits', 'uploadcare'
],
toolbar: 'undo redo | tinymceai-chat tinymceai-review tinymceai-quickactions spellchecker | styles | bold italic underline forecolor backcolor casechange | link uploadcare table addcomment | align bullist numlist checklist removeformat | code fullscreen help',
quickbars_selection_toolbar: 'tinymceai-quickactions addcomment',
sidebar_show: 'tinymceai-chat',
toolbar_mode: 'sliding',
visual: false,
images_file_types: 'jpeg,jpg,jpe,jfi,jif,jfif,png,gif,bmp,webp,svg',
user_id: 'james-wilson',
spellchecker_active: true,
spellchecker_dialog: true,
uploadcare_public_key: '630992ad50fe2291c406',
uploadcare_store_type: 'temporary',
advcode_inline: true,
tinycomments_mode: 'embedded',
suggestededits_content: 'html',
mentions_item_type: 'profile',
mentions_fetch,
fetch_users,
revisionhistory_fetch: () => {
const textarea = document.querySelector('textarea#tinymceai-actions');
const initialContent = textarea ? textarea.value : '';
const revisions = [
{
revisionId: '1',
createdAt: new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - 1, 14, 32, 0).getTime(),
author: {
id: 'jade-scott',
name: 'Jade Scott',
avatar: 'https://sneak-preview.tiny.cloud/demouserdirectory/images/employee_jade-scott_128_515dc6a1.jpg',
},
content: initialContent
},
{
revisionId: '0',
createdAt: new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - 1, 14, 32, 0).getTime(),
author: {
id: 'jade-scott',
name: 'Jade Scott',
avatar: 'https://sneak-preview.tiny.cloud/demouserdirectory/images/employee_jade-scott_128_515dc6a1.jpg',
},
content: ''
}
];
return Promise.resolve(revisions.sort((a, b) => (new Date(a.createdAt) < new Date(b.createdAt) ? -1 : 1)));
},
revisionhistory_display_author: true,
tinymceai_token_provider: async () => {
return isLoggedIn.then(() =>
fetch(`https://demo.api.tiny.cloud/1/${apiKey}/jwt/tinymceai`, { credentials: "include" })
.then(resp => resp.text())
.then(token => ({ token }))
);
},
tinymceai_chat_fetch_sources: () => Promise.resolve([{
label: 'TinyMCE resources',
sources: [
{ id: 'docs', label: 'TinyMCE Documentation', type: 'web-resource' },
{ id: 'blog', label: 'Tiny Blog', type: 'web-resource' },
{ id: 'survey-2023', label: 'State of rich text editing 2023', type: 'web-resource' },
]
}]),
tinymceai_chat_fetch_source: (id) => {
const urls = {
'docs': 'https://www.tiny.cloud/docs/tinymce/latest/',
'blog': 'https://www.tiny.cloud/blog/',
'survey-2023': 'https://www.tiny.cloud/developer-survey-results-2023/',
};
return Promise.resolve({ type: 'web-resource', url: urls[id] });
},
tinymceai_quickactions_custom: [
{ type: 'chat', title: 'Challenge', prompt: 'Challenge statements, verify facts and identify assumptions' }
],
tinymceai_languages: [
{ title: 'English', language: 'english' },
{ title: 'Chinese (Simplified)', language: 'chinese' },
{ title: 'Spanish', language: 'spanish' },
{ title: 'German', language: 'german' },
{ title: 'Japanese', language: 'japanese' },
{ title: 'Portuguese', language: 'portuguese' },
{ title: 'Swedish', language: 'swedish' },
{ title: 'Korean', language: 'korean' },
{ title: 'Hindi (Devanagari)', language: 'hindi devanagari' },
{ title: 'Italian', language: 'italian' },
{ title: 'Klingon', language: 'klingon' },
{ title: 'Dothraki', language: 'dothraki' },
]
});
51 changes: 51 additions & 0 deletions modules/ROOT/examples/live-demos/tinymceai-review/example.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
// Step 1: Set up session - this should be part of the application's user management process.
// Open-source plugins below are only for editing the demo HTML (lists, links, tables). TinyMCE AI options are the focus.
tinymce.init({
selector: 'textarea#tinymceai-review',
height: '800px',
plugins: ['tinymceai', 'advlist', 'lists', 'link', 'autolink', 'table', 'wordcount'],
toolbar: 'undo redo | tinymceai-chat ai-quickactions-translate tinymceai-review | styles | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link',
sidebar_show: 'tinymceai-review',
tinymceai_token_provider: async () => {
return fetch('/api/tinymceai-token', { credentials: 'include' })
.then(resp => resp.text())
.then(token => ({ token }));
},
tinymceai_chat_fetch_sources: () => Promise.resolve([{
label: 'TinyMCE resources',
sources: [
{ id: 'docs', label: 'TinyMCE Documentation', type: 'web-resource' },
{ id: 'blog', label: 'Tiny Blog', type: 'web-resource' },
{ id: 'survey-2023', label: 'State of rich text editing 2023', type: 'web-resource' },
]
}]),
tinymceai_chat_fetch_source: (id) => {
const urls = {
'docs': 'https://www.tiny.cloud/docs/tinymce/latest/',
'blog': 'https://www.tiny.cloud/blog/',
'survey-2023': 'https://www.tiny.cloud/developer-survey-results-2023/',
};
return Promise.resolve({ type: 'web-resource', url: urls[id] });
},
tinymceai_quickactions_custom: [
{
type: 'chat',
title: 'Challenge',
prompt: 'Challenge statements, verify facts and identify assumptions'
}
],
tinymceai_languages: [
{ title: 'English', language: 'english' },
{ title: 'Chinese (Simplified)', language: 'chinese' },
{ title: 'Spanish', language: 'spanish' },
{ title: 'German', language: 'german' },
{ title: 'Japanese', language: 'japanese' },
{ title: 'Portuguese', language: 'portuguese' },
{ title: 'Swedish', language: 'swedish' },
{ title: 'Korean', language: 'korean' },
{ title: 'Hindi (Devanagari)', language: 'hindi devanagari' },
{ title: 'Italian', language: 'italian' },
{ title: 'Klingon', language: 'klingon' },
{ title: 'Dothraki', language: 'dothraki' },
]
});
Loading
Loading