From 49876940ee03e2d867c9576dd5d704c5e4975b84 Mon Sep 17 00:00:00 2001 From: Karl Kemister-Sheppard Date: Wed, 23 Sep 2026 14:27:22 +1000 Subject: [PATCH 1/5] TINYDOC-3628: Add license_key to the bundling examples. --- .../module-loading/bundling-browserify-cjs-npm_editor.adoc | 3 +++ .../module-loading/bundling-browserify-cjs-zip_editor.adoc | 3 +++ .../module-loading/bundling-rollup-es6-npm_editor.adoc | 5 ++++- .../module-loading/bundling-rollup-es6-zip_editor.adoc | 5 ++++- .../module-loading/bundling-vite-es6-npm_editor.adoc | 2 ++ .../module-loading/bundling-webpack-cjs-npm_editor.adoc | 3 +++ .../module-loading/bundling-webpack-cjs-zip_editor.adoc | 3 +++ .../module-loading/bundling-webpack-es6-npm_editor.adoc | 3 +++ .../module-loading/bundling-webpack-es6-zip_editor.adoc | 5 ++++- 9 files changed, 29 insertions(+), 3 deletions(-) diff --git a/modules/ROOT/partials/module-loading/bundling-browserify-cjs-npm_editor.adoc b/modules/ROOT/partials/module-loading/bundling-browserify-cjs-npm_editor.adoc index 5028086bb4..4117e48ccb 100644 --- a/modules/ROOT/partials/module-loading/bundling-browserify-cjs-npm_editor.adoc +++ b/modules/ROOT/partials/module-loading/bundling-browserify-cjs-npm_editor.adoc @@ -47,6 +47,7 @@ const contentCss = fs.readFileSync('node_modules/tinymce/skins/content/default/c exports.render = () => { tinymce.init({ selector: 'textarea#editor', + license_key: 'gpl', /* All plugins need to be imported and added to the plugins option. */ plugins: 'advlist code emoticons link lists table help', toolbar: 'bold italic | bullist numlist | link emoticons', @@ -57,3 +58,5 @@ include::partial$module-loading/bundling-external-plugins-npm.adoc[] }); }; ---- ++ +NOTE: The `+license_key: 'gpl'+` value is for use under the GNU General Public License (GPL). To use a commercial license, replace `+'gpl'+` with the license key. For details, see xref:license-key.adoc[License key]. diff --git a/modules/ROOT/partials/module-loading/bundling-browserify-cjs-zip_editor.adoc b/modules/ROOT/partials/module-loading/bundling-browserify-cjs-zip_editor.adoc index 4c94fc7cfd..fd401794c6 100644 --- a/modules/ROOT/partials/module-loading/bundling-browserify-cjs-zip_editor.adoc +++ b/modules/ROOT/partials/module-loading/bundling-browserify-cjs-zip_editor.adoc @@ -49,6 +49,7 @@ const contentCss = fs.readFileSync('tinymce/js/tinymce/skins/content/default/con exports.render = () => { tinymce.init({ selector: 'textarea#editor', + license_key: 'gpl', /* All plugins need to be imported and added to the plugins option. */ plugins: 'advlist code emoticons link lists table help', toolbar: 'bold italic | bullist numlist | link emoticons', @@ -59,3 +60,5 @@ include::partial$module-loading/bundling-external-plugins-zip.adoc[] }); }; ---- ++ +NOTE: The `+license_key: 'gpl'+` value is for use under the GNU General Public License (GPL). To use a commercial license, replace `+'gpl'+` with the license key. For details, see xref:license-key.adoc[License key]. diff --git a/modules/ROOT/partials/module-loading/bundling-rollup-es6-npm_editor.adoc b/modules/ROOT/partials/module-loading/bundling-rollup-es6-npm_editor.adoc index a9144c3ae9..c5e62a88aa 100644 --- a/modules/ROOT/partials/module-loading/bundling-rollup-es6-npm_editor.adoc +++ b/modules/ROOT/partials/module-loading/bundling-rollup-es6-npm_editor.adoc @@ -42,6 +42,7 @@ import contentCss from 'tinymce/skins/content/default/content.css'; export function render () { tinymce.init({ selector: 'textarea#editor', + license_key: 'gpl', plugins: 'advlist code emoticons link lists table help', toolbar: 'bold italic | bullist numlist | link emoticons', skin: false, @@ -50,4 +51,6 @@ export function render () { include::partial$module-loading/bundling-external-plugins-npm.adoc[] }); }; ----- \ No newline at end of file +---- ++ +NOTE: The `+license_key: 'gpl'+` value is for use under the GNU General Public License (GPL). To use a commercial license, replace `+'gpl'+` with the license key. For details, see xref:license-key.adoc[License key]. diff --git a/modules/ROOT/partials/module-loading/bundling-rollup-es6-zip_editor.adoc b/modules/ROOT/partials/module-loading/bundling-rollup-es6-zip_editor.adoc index 2bd49c829b..357b23239c 100644 --- a/modules/ROOT/partials/module-loading/bundling-rollup-es6-zip_editor.adoc +++ b/modules/ROOT/partials/module-loading/bundling-rollup-es6-zip_editor.adoc @@ -44,6 +44,7 @@ import contentCss from '../tinymce/js/tinymce/skins/content/default/content.css' export function render () { tinymce.init({ selector: 'textarea#editor', + license_key: 'gpl', plugins: 'advlist code emoticons link lists table help', toolbar: 'bold italic | bullist numlist | link emoticons', skin: false, @@ -52,4 +53,6 @@ export function render () { include::partial$module-loading/bundling-external-plugins-zip.adoc[] }); }; ----- \ No newline at end of file +---- ++ +NOTE: The `+license_key: 'gpl'+` value is for use under the GNU General Public License (GPL). To use a commercial license, replace `+'gpl'+` with the license key. For details, see xref:license-key.adoc[License key]. diff --git a/modules/ROOT/partials/module-loading/bundling-vite-es6-npm_editor.adoc b/modules/ROOT/partials/module-loading/bundling-vite-es6-npm_editor.adoc index b8fa7b5ae5..db9690483b 100644 --- a/modules/ROOT/partials/module-loading/bundling-vite-es6-npm_editor.adoc +++ b/modules/ROOT/partials/module-loading/bundling-vite-es6-npm_editor.adoc @@ -53,3 +53,5 @@ include::partial$module-loading/bundling-external-plugins-npm.adoc[] }); }; ---- ++ +NOTE: The `+license_key: 'gpl'+` value is for use under the GNU General Public License (GPL). To use a commercial license, replace `+'gpl'+` with the license key. For details, see xref:license-key.adoc[License key]. diff --git a/modules/ROOT/partials/module-loading/bundling-webpack-cjs-npm_editor.adoc b/modules/ROOT/partials/module-loading/bundling-webpack-cjs-npm_editor.adoc index ac6fe25d17..47f395bd86 100644 --- a/modules/ROOT/partials/module-loading/bundling-webpack-cjs-npm_editor.adoc +++ b/modules/ROOT/partials/module-loading/bundling-webpack-cjs-npm_editor.adoc @@ -40,6 +40,7 @@ const contentCss = require('tinymce/skins/content/default/content.css'); exports.render = () => { tinymce.init({ selector: 'textarea#editor', + license_key: 'gpl', /* All plugins need to be imported and added to the plugins option. */ plugins: 'advlist code emoticons link lists table help', toolbar: 'bold italic | bullist numlist | link emoticons', @@ -49,3 +50,5 @@ exports.render = () => { }); }; ---- ++ +NOTE: The `+license_key: 'gpl'+` value is for use under the GNU General Public License (GPL). To use a commercial license, replace `+'gpl'+` with the license key. For details, see xref:license-key.adoc[License key]. diff --git a/modules/ROOT/partials/module-loading/bundling-webpack-cjs-zip_editor.adoc b/modules/ROOT/partials/module-loading/bundling-webpack-cjs-zip_editor.adoc index 711eea8259..c5acdc9c06 100644 --- a/modules/ROOT/partials/module-loading/bundling-webpack-cjs-zip_editor.adoc +++ b/modules/ROOT/partials/module-loading/bundling-webpack-cjs-zip_editor.adoc @@ -40,6 +40,7 @@ const contentCss = require('../tinymce/js/tinymce/skins/content/default/content. exports.render = () => { tinymce.init({ selector: 'textarea#editor', + license_key: 'gpl', /* All plugins need to be imported and added to the plugins option. */ plugins: 'advlist code emoticons link lists table help', toolbar: 'bold italic | bullist numlist | link emoticons', @@ -50,3 +51,5 @@ include::partial$module-loading/bundling-external-plugins-zip.adoc[] }); }; ---- ++ +NOTE: The `+license_key: 'gpl'+` value is for use under the GNU General Public License (GPL). To use a commercial license, replace `+'gpl'+` with the license key. For details, see xref:license-key.adoc[License key]. diff --git a/modules/ROOT/partials/module-loading/bundling-webpack-es6-npm_editor.adoc b/modules/ROOT/partials/module-loading/bundling-webpack-es6-npm_editor.adoc index 9ec20931bd..d2286fa33d 100644 --- a/modules/ROOT/partials/module-loading/bundling-webpack-es6-npm_editor.adoc +++ b/modules/ROOT/partials/module-loading/bundling-webpack-es6-npm_editor.adoc @@ -40,6 +40,7 @@ import contentCss from 'tinymce/skins/content/default/content.css'; export function render () { tinymce.init({ selector: 'textarea#editor', + license_key: 'gpl', plugins: 'advlist code emoticons link lists table help', toolbar: 'bold italic | bullist numlist | link emoticons', skin: false, @@ -48,3 +49,5 @@ export function render () { }); }; ---- ++ +NOTE: The `+license_key: 'gpl'+` value is for use under the GNU General Public License (GPL). To use a commercial license, replace `+'gpl'+` with the license key. For details, see xref:license-key.adoc[License key]. diff --git a/modules/ROOT/partials/module-loading/bundling-webpack-es6-zip_editor.adoc b/modules/ROOT/partials/module-loading/bundling-webpack-es6-zip_editor.adoc index f3e043feda..a518f3abbf 100644 --- a/modules/ROOT/partials/module-loading/bundling-webpack-es6-zip_editor.adoc +++ b/modules/ROOT/partials/module-loading/bundling-webpack-es6-zip_editor.adoc @@ -40,6 +40,7 @@ import contentCss from '../tinymce/js/tinymce/skins/content/default/content.css' export function render () { tinymce.init({ selector: 'textarea#editor', + license_key: 'gpl', plugins: 'advlist code emoticons link lists table help', toolbar: 'bold italic | bullist numlist | link emoticons', skin: false, @@ -47,4 +48,6 @@ export function render () { content_style: contentUiSkinCss.toString() + '\n' + contentCss.toString() }); }; ----- \ No newline at end of file +---- ++ +NOTE: The `+license_key: 'gpl'+` value is for use under the GNU General Public License (GPL). To use a commercial license, replace `+'gpl'+` with the license key. For details, see xref:license-key.adoc[License key]. From 869ee1ea7709c7b47b036b703ffe8c53f8bfc2eb Mon Sep 17 00:00:00 2001 From: Karl Kemister-Sheppard Date: Wed, 23 Sep 2026 14:39:56 +1000 Subject: [PATCH 2/5] TINYDOC-3628: Move the bundling license key note into a shared partial. --- modules/ROOT/partials/misc/admon-bundling-license-key.adoc | 1 + .../module-loading/bundling-browserify-cjs-npm_editor.adoc | 2 +- .../module-loading/bundling-browserify-cjs-zip_editor.adoc | 2 +- .../partials/module-loading/bundling-rollup-es6-npm_editor.adoc | 2 +- .../partials/module-loading/bundling-rollup-es6-zip_editor.adoc | 2 +- .../partials/module-loading/bundling-vite-es6-npm_editor.adoc | 2 +- .../module-loading/bundling-webpack-cjs-npm_editor.adoc | 2 +- .../module-loading/bundling-webpack-cjs-zip_editor.adoc | 2 +- .../module-loading/bundling-webpack-es6-npm_editor.adoc | 2 +- .../module-loading/bundling-webpack-es6-zip_editor.adoc | 2 +- 10 files changed, 10 insertions(+), 9 deletions(-) create mode 100644 modules/ROOT/partials/misc/admon-bundling-license-key.adoc diff --git a/modules/ROOT/partials/misc/admon-bundling-license-key.adoc b/modules/ROOT/partials/misc/admon-bundling-license-key.adoc new file mode 100644 index 0000000000..5f677e7810 --- /dev/null +++ b/modules/ROOT/partials/misc/admon-bundling-license-key.adoc @@ -0,0 +1 @@ +NOTE: The `+license_key: 'gpl'+` value is for self-hosting {productname} under the GNU General Public License (GPL). To use a commercial license, or to include premium plugins, replace `+'gpl'+` with a valid license key. For details, see xref:license-key.adoc#setting-the-license[Setting the license]. diff --git a/modules/ROOT/partials/module-loading/bundling-browserify-cjs-npm_editor.adoc b/modules/ROOT/partials/module-loading/bundling-browserify-cjs-npm_editor.adoc index 4117e48ccb..dc12fa4f68 100644 --- a/modules/ROOT/partials/module-loading/bundling-browserify-cjs-npm_editor.adoc +++ b/modules/ROOT/partials/module-loading/bundling-browserify-cjs-npm_editor.adoc @@ -59,4 +59,4 @@ include::partial$module-loading/bundling-external-plugins-npm.adoc[] }; ---- + -NOTE: The `+license_key: 'gpl'+` value is for use under the GNU General Public License (GPL). To use a commercial license, replace `+'gpl'+` with the license key. For details, see xref:license-key.adoc[License key]. +include::partial$misc/admon-bundling-license-key.adoc[] diff --git a/modules/ROOT/partials/module-loading/bundling-browserify-cjs-zip_editor.adoc b/modules/ROOT/partials/module-loading/bundling-browserify-cjs-zip_editor.adoc index fd401794c6..aceb6f9d31 100644 --- a/modules/ROOT/partials/module-loading/bundling-browserify-cjs-zip_editor.adoc +++ b/modules/ROOT/partials/module-loading/bundling-browserify-cjs-zip_editor.adoc @@ -61,4 +61,4 @@ include::partial$module-loading/bundling-external-plugins-zip.adoc[] }; ---- + -NOTE: The `+license_key: 'gpl'+` value is for use under the GNU General Public License (GPL). To use a commercial license, replace `+'gpl'+` with the license key. For details, see xref:license-key.adoc[License key]. +include::partial$misc/admon-bundling-license-key.adoc[] diff --git a/modules/ROOT/partials/module-loading/bundling-rollup-es6-npm_editor.adoc b/modules/ROOT/partials/module-loading/bundling-rollup-es6-npm_editor.adoc index c5e62a88aa..47f336651b 100644 --- a/modules/ROOT/partials/module-loading/bundling-rollup-es6-npm_editor.adoc +++ b/modules/ROOT/partials/module-loading/bundling-rollup-es6-npm_editor.adoc @@ -53,4 +53,4 @@ include::partial$module-loading/bundling-external-plugins-npm.adoc[] }; ---- + -NOTE: The `+license_key: 'gpl'+` value is for use under the GNU General Public License (GPL). To use a commercial license, replace `+'gpl'+` with the license key. For details, see xref:license-key.adoc[License key]. +include::partial$misc/admon-bundling-license-key.adoc[] diff --git a/modules/ROOT/partials/module-loading/bundling-rollup-es6-zip_editor.adoc b/modules/ROOT/partials/module-loading/bundling-rollup-es6-zip_editor.adoc index 357b23239c..16763fec01 100644 --- a/modules/ROOT/partials/module-loading/bundling-rollup-es6-zip_editor.adoc +++ b/modules/ROOT/partials/module-loading/bundling-rollup-es6-zip_editor.adoc @@ -55,4 +55,4 @@ include::partial$module-loading/bundling-external-plugins-zip.adoc[] }; ---- + -NOTE: The `+license_key: 'gpl'+` value is for use under the GNU General Public License (GPL). To use a commercial license, replace `+'gpl'+` with the license key. For details, see xref:license-key.adoc[License key]. +include::partial$misc/admon-bundling-license-key.adoc[] diff --git a/modules/ROOT/partials/module-loading/bundling-vite-es6-npm_editor.adoc b/modules/ROOT/partials/module-loading/bundling-vite-es6-npm_editor.adoc index db9690483b..9288f8914a 100644 --- a/modules/ROOT/partials/module-loading/bundling-vite-es6-npm_editor.adoc +++ b/modules/ROOT/partials/module-loading/bundling-vite-es6-npm_editor.adoc @@ -54,4 +54,4 @@ include::partial$module-loading/bundling-external-plugins-npm.adoc[] }; ---- + -NOTE: The `+license_key: 'gpl'+` value is for use under the GNU General Public License (GPL). To use a commercial license, replace `+'gpl'+` with the license key. For details, see xref:license-key.adoc[License key]. +include::partial$misc/admon-bundling-license-key.adoc[] diff --git a/modules/ROOT/partials/module-loading/bundling-webpack-cjs-npm_editor.adoc b/modules/ROOT/partials/module-loading/bundling-webpack-cjs-npm_editor.adoc index 47f395bd86..493acf855f 100644 --- a/modules/ROOT/partials/module-loading/bundling-webpack-cjs-npm_editor.adoc +++ b/modules/ROOT/partials/module-loading/bundling-webpack-cjs-npm_editor.adoc @@ -51,4 +51,4 @@ exports.render = () => { }; ---- + -NOTE: The `+license_key: 'gpl'+` value is for use under the GNU General Public License (GPL). To use a commercial license, replace `+'gpl'+` with the license key. For details, see xref:license-key.adoc[License key]. +include::partial$misc/admon-bundling-license-key.adoc[] diff --git a/modules/ROOT/partials/module-loading/bundling-webpack-cjs-zip_editor.adoc b/modules/ROOT/partials/module-loading/bundling-webpack-cjs-zip_editor.adoc index c5acdc9c06..e8be013435 100644 --- a/modules/ROOT/partials/module-loading/bundling-webpack-cjs-zip_editor.adoc +++ b/modules/ROOT/partials/module-loading/bundling-webpack-cjs-zip_editor.adoc @@ -52,4 +52,4 @@ include::partial$module-loading/bundling-external-plugins-zip.adoc[] }; ---- + -NOTE: The `+license_key: 'gpl'+` value is for use under the GNU General Public License (GPL). To use a commercial license, replace `+'gpl'+` with the license key. For details, see xref:license-key.adoc[License key]. +include::partial$misc/admon-bundling-license-key.adoc[] diff --git a/modules/ROOT/partials/module-loading/bundling-webpack-es6-npm_editor.adoc b/modules/ROOT/partials/module-loading/bundling-webpack-es6-npm_editor.adoc index d2286fa33d..a52d9314e3 100644 --- a/modules/ROOT/partials/module-loading/bundling-webpack-es6-npm_editor.adoc +++ b/modules/ROOT/partials/module-loading/bundling-webpack-es6-npm_editor.adoc @@ -50,4 +50,4 @@ export function render () { }; ---- + -NOTE: The `+license_key: 'gpl'+` value is for use under the GNU General Public License (GPL). To use a commercial license, replace `+'gpl'+` with the license key. For details, see xref:license-key.adoc[License key]. +include::partial$misc/admon-bundling-license-key.adoc[] diff --git a/modules/ROOT/partials/module-loading/bundling-webpack-es6-zip_editor.adoc b/modules/ROOT/partials/module-loading/bundling-webpack-es6-zip_editor.adoc index a518f3abbf..bc2d6f13f7 100644 --- a/modules/ROOT/partials/module-loading/bundling-webpack-es6-zip_editor.adoc +++ b/modules/ROOT/partials/module-loading/bundling-webpack-es6-zip_editor.adoc @@ -50,4 +50,4 @@ export function render () { }; ---- + -NOTE: The `+license_key: 'gpl'+` value is for use under the GNU General Public License (GPL). To use a commercial license, replace `+'gpl'+` with the license key. For details, see xref:license-key.adoc[License key]. +include::partial$misc/admon-bundling-license-key.adoc[] From 8c72123b3ac115dfb1f64f9090578a862e52cdcc Mon Sep 17 00:00:00 2001 From: Karl Kemister-Sheppard Date: Thu, 24 Sep 2026 15:03:09 +1000 Subject: [PATCH 3/5] TINYDOC-3628: Add license_key to the self-hosted integration quick starts. --- .../integrations/blazor-postinstall.adoc | 1 + .../integrations/bootstrap-quick-start.adoc | 10 ++++++++++ .../integrations/django-quick-start.adoc | 17 +++++++++++++++++ .../integrations/expressjs-quick-start.adoc | 3 +++ .../integrations/laravel-quick-start.adoc | 7 +++++++ .../integrations/rails-quick-start.adoc | 6 ++++++ 6 files changed, 44 insertions(+) diff --git a/modules/ROOT/partials/integrations/blazor-postinstall.adoc b/modules/ROOT/partials/integrations/blazor-postinstall.adoc index 05f04d7bf4..2eb33fdf30 100644 --- a/modules/ROOT/partials/integrations/blazor-postinstall.adoc +++ b/modules/ROOT/partials/integrations/blazor-postinstall.adoc @@ -111,6 +111,7 @@ ifeval::["{productSource}" != "cloud"] ---- ---- diff --git a/modules/ROOT/partials/integrations/bootstrap-quick-start.adoc b/modules/ROOT/partials/integrations/bootstrap-quick-start.adoc index 6cd502da1d..d48f57535d 100644 --- a/modules/ROOT/partials/integrations/bootstrap-quick-start.adoc +++ b/modules/ROOT/partials/integrations/bootstrap-quick-start.adoc @@ -52,10 +52,20 @@ endif::[] ---- ---- +ifeval::["{productSource}" != "cloud"] ++ +include::partial$misc/admon-bundling-license-key.adoc[] +endif::[] == Using {productname} in a Bootstrap dialog diff --git a/modules/ROOT/partials/integrations/django-quick-start.adoc b/modules/ROOT/partials/integrations/django-quick-start.adoc index 785bdae2c0..3fa7d9a769 100644 --- a/modules/ROOT/partials/integrations/django-quick-start.adoc +++ b/modules/ROOT/partials/integrations/django-quick-start.adoc @@ -38,5 +38,22 @@ TINYMCE_COMPRESSOR = False TINYMCE_JS_ROOT = os.path.join(MEDIA_URL, "path/to/tinymce") TINYMCE_COMPRESSOR = True ---- +. Set `+license_key+` in `+TINYMCE_DEFAULT_CONFIG+` in the project’s `+settings.py+` file. `+TINYMCE_DEFAULT_CONFIG+` replaces the default `+django-tinymce+` configuration, so include any other options the editor needs. Such as: ++ +[source,py] +---- +TINYMCE_DEFAULT_CONFIG = { + "license_key": "gpl", + "height": 500, + "menubar": False, + "plugins": "advlist,autolink,lists,link,image,charmap,preview,anchor," + "searchreplace,visualblocks,code,fullscreen,insertdatetime,media,table," + "help,wordcount", + "toolbar": "undo redo | blocks | bold italic backcolor | alignleft aligncenter " + "alignright alignjustify | bullist numlist outdent indent | removeformat | help", +} +---- ++ +NOTE: The `+"license_key": "gpl"+` value is for self-hosting {productname} under the GNU General Public License (GPL). To use a commercial license, or to include premium plugins, replace `+"gpl"+` with a valid license key. For details, see xref:license-key.adoc#setting-the-license[Setting the license]. endif::[] diff --git a/modules/ROOT/partials/integrations/expressjs-quick-start.adoc b/modules/ROOT/partials/integrations/expressjs-quick-start.adoc index 470eaf13f9..904cd0f36e 100644 --- a/modules/ROOT/partials/integrations/expressjs-quick-start.adoc +++ b/modules/ROOT/partials/integrations/expressjs-quick-start.adoc @@ -88,9 +88,12 @@ Windows: ---- tinymce.init({ selector: 'textarea#my-expressjs-{prodnamecode}-app', + license_key: 'gpl', plugins: 'lists link image table code help wordcount' }); ---- ++ +include::partial$misc/admon-bundling-license-key.adoc[] . Update `+public/index.html+` to include: * The document type declaration, `++`. * A `+ ---- +ifeval::["{productSource}" != "cloud"] ++ +include::partial$misc/admon-bundling-license-key.adoc[] +endif::[] ifeval::["{productSource}" == "cloud"] . Replace `+no-api-key+` in the {productname} source script with your {cloudname} API Key. diff --git a/modules/ROOT/partials/integrations/rails-quick-start.adoc b/modules/ROOT/partials/integrations/rails-quick-start.adoc index 6443f5fb20..8939a04b2a 100644 --- a/modules/ROOT/partials/integrations/rails-quick-start.adoc +++ b/modules/ROOT/partials/integrations/rails-quick-start.adoc @@ -43,10 +43,13 @@ include::partial$integrations/rails-basic-proj.adoc[] ---- ++ +include::partial$misc/admon-bundling-license-key.adoc[] . Create a `+