Skip to content

Commit 66b672b

Browse files
committed
DOC-3329: Update bundling guides to reference imports for help plugin and keynav/en explicitly. Include bundling-plugin-resources examples.
1 parent 37ad7e9 commit 66b672b

11 files changed

+170
-11
lines changed

modules/ROOT/pages/bundling-plugins.adoc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,6 @@ require('<path_to_tinymce_premium_zip>/plugins/<plugincode>');
8585
----
8686
|===
8787

88-
8988
[[using-premium-plugins]]
9089
== Using premium plugins
9190

@@ -173,4 +172,6 @@ The `+external_plugins+` option supports three URL formats:
173172
For more information, see: xref:editor-important-options.adoc#external_plugins[`+external_plugins+` configuration option].
174173
====
175174

176-
include::partial$module-loading/bundling-plugin-files.adoc[]
175+
include::partial$module-loading/bundling-plugin-files.adoc[]
176+
177+
include::partial$module-loading/bundling-plugin-resources.adoc[]

modules/ROOT/partials/module-loading/bundling-browserify-cjs-npm_editor.adoc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ require('tinymce/plugins/emoticons/js/emojis');
2929
require('tinymce/plugins/link');
3030
require('tinymce/plugins/lists');
3131
require('tinymce/plugins/table');
32+
require('tinymce/plugins/help');
33+
require('tinymce/plugins/help/js/i18n/keynav/en');
3234
3335
/* Import premium plugins from NPM */
3436
require('tinymce-premium/plugins/advcode');
@@ -46,7 +48,7 @@ exports.render = () => {
4648
tinymce.init({
4749
selector: 'textarea#editor',
4850
/* All plugins need to be imported and added to the plugins option. */
49-
plugins: 'advlist code emoticons link lists table',
51+
plugins: 'advlist code emoticons link lists table help',
5052
toolbar: 'bold italic | bullist numlist | link emoticons',
5153
skin: false,
5254
content_css: false,

modules/ROOT/partials/module-loading/bundling-browserify-cjs-zip_editor.adoc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ require('../tinymce/js/tinymce/plugins/emoticons/js/emojis');
2929
require('../tinymce/js/tinymce/plugins/link');
3030
require('../tinymce/js/tinymce/plugins/lists');
3131
require('../tinymce/js/tinymce/plugins/table');
32+
require('../tinymce/js/tinymce/plugins/help');
33+
require('../tinymce/js/tinymce/plugins/help/js/i18n/keynav/en');
3234
3335
/* Import premium plugins */
3436
/* From NPM package (recommended) */
@@ -48,7 +50,7 @@ exports.render = () => {
4850
tinymce.init({
4951
selector: 'textarea#editor',
5052
/* All plugins need to be imported and added to the plugins option. */
51-
plugins: 'advlist code emoticons link lists table',
53+
plugins: 'advlist code emoticons link lists table help',
5254
toolbar: 'bold italic | bullist numlist | link emoticons',
5355
skin: false,
5456
content_css: false,
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
[[plugin-resources]]
2+
== Additional plugin resources
3+
4+
[IMPORTANT]
5+
====
6+
When bundling {productname} with module loaders (Webpack, Vite, Rollup), some plugins require additional resource files (CSS, JS, or language files) to be explicitly imported. These files are not automatically resolved by the bundler and must be imported manually.
7+
8+
Key points:
9+
10+
* Core plugin resources typically use relative paths without file extensions
11+
* Premium plugin resources (from `tinymce-premium`) MUST include the `.js` or `.css` file extension in the import path
12+
* Language files are typically located in `plugins/<plugincode>/langs/`
13+
* CSS files may be in `plugins/<plugincode>/css/` or at the plugin root
14+
* English is the default language, so `en.js` language files don't exist (plugins fall back to English)
15+
====
16+
17+
=== Common plugin resource requirements
18+
19+
The following plugins require additional resource files when bundling:
20+
21+
[[help-plugin-resources]]
22+
==== Help plugin (`+help+`)
23+
24+
The Help plugin requires the keyboard navigation language file for the keyboard navigation tab to function properly:
25+
26+
[cols='1,1,4']
27+
|===
28+
|Module Syntax |Source |Example
29+
30+
.2+|ES6+
31+
|npm
32+
a|
33+
[source, js]
34+
----
35+
import 'tinymce/plugins/help/js/i18n/keynav/en';
36+
----
37+
38+
|`.zip`
39+
a|
40+
[source, js]
41+
----
42+
import '../tinymce/plugins/help/js/i18n/keynav/en';
43+
----
44+
45+
.2+|Common JS
46+
|npm
47+
a|
48+
[source, js]
49+
----
50+
require('tinymce/plugins/help/js/i18n/keynav/en');
51+
----
52+
53+
|`.zip`
54+
a|
55+
[source, js]
56+
----
57+
require('../tinymce/plugins/help/js/i18n/keynav/en');
58+
----
59+
|===
60+
61+
[[pageembed-plugin-resources]]
62+
==== Page Embed plugin (`+pageembed+`)
63+
64+
The Page Embed plugin requires a CSS file for proper styling:
65+
66+
[cols='1,1,4']
67+
|===
68+
|Module Syntax |Source |Example
69+
70+
.2+|ES6+
71+
|npm
72+
a|
73+
[source, js]
74+
----
75+
import 'tinymce-premium/plugins/pageembed/css/empa30.css';
76+
----
77+
78+
|`.zip`
79+
a|
80+
[source, js]
81+
----
82+
import '../plugins/pageembed/css/empa30.css';
83+
----
84+
85+
.2+|Common JS
86+
|npm
87+
a|
88+
[source, js]
89+
----
90+
require('tinymce-premium/plugins/pageembed/css/empa30.css');
91+
----
92+
93+
|`.zip`
94+
a|
95+
[source, js]
96+
----
97+
require('../plugins/pageembed/css/empa30.css');
98+
----
99+
|===
100+
101+
[[emoticons-plugin-resources]]
102+
==== Emoticons plugin (`+emoticons+`)
103+
104+
The xref:emoticons.adoc[Emoticons plugin] requires an emoji database file. By default, it uses `+js/emojis.js+`, but you can also use `+js/emojiimages.js+` by configuring the xref:emoticons.adoc#emoticons_database[`+emoticons_database+`] option.
105+
106+
[cols='1,1,4']
107+
|===
108+
|Module Syntax |Source |Example
109+
110+
.2+|ES6+
111+
|npm
112+
a|
113+
[source, js]
114+
----
115+
import 'tinymce/plugins/emoticons/js/emojis';
116+
----
117+
118+
|`.zip`
119+
a|
120+
[source, js]
121+
----
122+
import '../tinymce/plugins/emoticons/js/emojis';
123+
----
124+
125+
.2+|Common JS
126+
|npm
127+
a|
128+
[source, js]
129+
----
130+
require('tinymce/plugins/emoticons/js/emojis');
131+
----
132+
133+
|`.zip`
134+
a|
135+
[source, js]
136+
----
137+
require('../tinymce/plugins/emoticons/js/emojis');
138+
----
139+
|===
140+

modules/ROOT/partials/module-loading/bundling-rollup-es6-npm_editor.adoc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ import 'tinymce/plugins/emoticons/js/emojis';
2727
import 'tinymce/plugins/link';
2828
import 'tinymce/plugins/lists';
2929
import 'tinymce/plugins/table';
30+
import 'tinymce/plugins/help';
31+
import 'tinymce/plugins/help/js/i18n/keynav/en';
3032
3133
include::partial$integrations/premium-plugins-bundling.adoc[]
3234
@@ -40,7 +42,7 @@ import contentCss from 'tinymce/skins/content/default/content.css';
4042
export function render () {
4143
tinymce.init({
4244
selector: 'textarea#editor',
43-
plugins: 'advlist code emoticons link lists table',
45+
plugins: 'advlist code emoticons link lists table help',
4446
toolbar: 'bold italic | bullist numlist | link emoticons',
4547
skin: false,
4648
content_css: false,

modules/ROOT/partials/module-loading/bundling-rollup-es6-zip_editor.adoc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ import '../tinymce/js/tinymce/plugins/emoticons/js/emojis';
2727
import '../tinymce/js/tinymce/plugins/link';
2828
import '../tinymce/js/tinymce/plugins/lists';
2929
import '../tinymce/js/tinymce/plugins/table';
30+
import '../tinymce/js/tinymce/plugins/help';
31+
import '../tinymce/js/tinymce/plugins/help/js/i18n/keynav/en';
3032
3133
include::partial$integrations/premium-plugins-bundling.adoc[]
3234
/* From ZIP download - download separately and add to /src/plugins */
@@ -42,7 +44,7 @@ import contentCss from '../tinymce/js/tinymce/skins/content/default/content.css'
4244
export function render () {
4345
tinymce.init({
4446
selector: 'textarea#editor',
45-
plugins: 'advlist code emoticons link lists table',
47+
plugins: 'advlist code emoticons link lists table help',
4648
toolbar: 'bold italic | bullist numlist | link emoticons',
4749
skin: false,
4850
content_css: false,

modules/ROOT/partials/module-loading/bundling-vite-es6-npm_editor.adoc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ import 'tinymce/plugins/emoticons/js/emojis';
2929
import 'tinymce/plugins/link';
3030
import 'tinymce/plugins/lists';
3131
import 'tinymce/plugins/table';
32+
import 'tinymce/plugins/help';
33+
import 'tinymce/plugins/help/js/i18n/keynav/en';
3234
3335
include::partial$integrations/premium-plugins-bundling.adoc[]
3436
@@ -43,7 +45,7 @@ export function render () {
4345
tinymce.init({
4446
selector: 'textarea#editor',
4547
license_key: 'gpl',
46-
plugins: 'advlist code emoticons link lists table',
48+
plugins: 'advlist code emoticons link lists table help',
4749
toolbar: 'bold italic | bullist numlist | link emoticons',
4850
skin_url: 'default',
4951
content_css: 'default',

modules/ROOT/partials/module-loading/bundling-webpack-cjs-npm_editor.adoc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ require('tinymce/plugins/emoticons/js/emojis');
2727
require('tinymce/plugins/link');
2828
require('tinymce/plugins/lists');
2929
require('tinymce/plugins/table');
30+
require('tinymce/plugins/help');
31+
require('tinymce/plugins/help/js/i18n/keynav/en');
3032
3133
/* Import premium plugins from NPM */
3234
require('tinymce-premium/plugins/advcode');
@@ -44,7 +46,7 @@ exports.render = () => {
4446
tinymce.init({
4547
selector: 'textarea#editor',
4648
/* All plugins need to be imported and added to the plugins option. */
47-
plugins: 'advlist code emoticons link lists table',
49+
plugins: 'advlist code emoticons link lists table help',
4850
toolbar: 'bold italic | bullist numlist | link emoticons',
4951
skin: false,
5052
content_css: false,

modules/ROOT/partials/module-loading/bundling-webpack-cjs-zip_editor.adoc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ require('../tinymce/js/tinymce/plugins/emoticons/js/emojis');
2727
require('../tinymce/js/tinymce/plugins/link');
2828
require('../tinymce/js/tinymce/plugins/lists');
2929
require('../tinymce/js/tinymce/plugins/table');
30+
require('../tinymce/js/tinymce/plugins/help');
31+
require('../tinymce/js/tinymce/plugins/help/js/i18n/keynav/en');
3032
3133
include::partial$integrations/premium-plugins-bundling.adoc[]
3234
/* From ZIP download - download separately and add to /src/plugins */
@@ -43,7 +45,7 @@ exports.render = () => {
4345
tinymce.init({
4446
selector: 'textarea#editor',
4547
/* All plugins need to be imported and added to the plugins option. */
46-
plugins: 'advlist code emoticons link lists table',
48+
plugins: 'advlist code emoticons link lists table help',
4749
toolbar: 'bold italic | bullist numlist | link emoticons',
4850
skin: false,
4951
content_css: false,

modules/ROOT/partials/module-loading/bundling-webpack-es6-npm_editor.adoc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ import 'tinymce/plugins/emoticons/js/emojis';
2727
import 'tinymce/plugins/link';
2828
import 'tinymce/plugins/lists';
2929
import 'tinymce/plugins/table';
30+
import 'tinymce/plugins/help';
31+
import 'tinymce/plugins/help/js/i18n/keynav/en';
3032
3133
include::partial$integrations/premium-plugins-bundling.adoc[]
3234
@@ -40,7 +42,7 @@ import contentCss from 'tinymce/skins/content/default/content.css';
4042
export function render () {
4143
tinymce.init({
4244
selector: 'textarea#editor',
43-
plugins: 'advlist code emoticons link lists table',
45+
plugins: 'advlist code emoticons link lists table help',
4446
toolbar: 'bold italic | bullist numlist | link emoticons',
4547
skin: false,
4648
content_css: false,

0 commit comments

Comments
 (0)