diff --git a/-scripts/generate-site.sh b/-scripts/generate-site.sh deleted file mode 100755 index 16e9658c84..0000000000 --- a/-scripts/generate-site.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -PLAYBOOK="$1" - - -BUILD_DIR="build" -SITE_DIR="$BUILD_DIR/site/tinymce" - -SOURCE_VERSION="latest" -SOURCE_DIR="$SITE_DIR/$SOURCE_VERSION/" -DEST_VERSION=6 -DEST_DIR="$SITE_DIR/$DEST_VERSION/" - -echo -e "\nRemoving existing $SITE_DIR directory." -rm -rf "$BUILD_DIR" - -echo -e "\nGenerating antora documentation." -antora "$PLAYBOOK" - -echo -e "\nCopying all $SOURCE_VERSION content to $DEST_VERSION directory." -mkdir "$DEST_DIR" - -cp -a "$SOURCE_DIR." "$DEST_DIR" - -echo "$DEST_VERSION site now in sync with $SOURCE_VERSION." diff --git a/.github/workflows/feature_6_docs.yml b/.github/workflows/feature_6_docs.yml index f6e3842cf7..348f457739 100644 --- a/.github/workflows/feature_6_docs.yml +++ b/.github/workflows/feature_6_docs.yml @@ -12,11 +12,11 @@ on: jobs: build: name: Build Docs and Deploy - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 strategy: matrix: - node-version: [14] + node-version: [21] steps: - uses: actions/checkout@v1 @@ -34,7 +34,7 @@ jobs: run: yarn build - name: (Feature - Docs 6) Build Website - run: yarn generate-site ./antora-playbook-dev.yml + run: yarn antora ./antora-playbook-dev.yml - name: (deploy) Prepare for branch deployments shell: bash diff --git a/.github/workflows/release_6_docs.yml b/.github/workflows/release_6_docs.yml index a33072ab4d..b43d60fd74 100644 --- a/.github/workflows/release_6_docs.yml +++ b/.github/workflows/release_6_docs.yml @@ -11,11 +11,11 @@ on: jobs: build: name: Build Docs and Deploy - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 strategy: matrix: - node-version: [14] + node-version: [21] steps: - uses: actions/checkout@v1 @@ -33,15 +33,17 @@ jobs: run: yarn build - name: (Release - Docs 6) Build Website - run: yarn generate-site ./antora-playbook-prod.yml + run: yarn antora ./antora-playbook-prod.yml - - name: (Release - Docs 6) Rename sitemap.xml (Temporary solution - Amit) - shell: bash - run: | - mv ./build/site/sitemap.xml ./build/site/antora-sitemap.xml + - name: (deploy) Upload site to S3 + run: aws s3 sync --acl=public-read --delete ./build/site s3://tiny-cloud-antora-docs-production/docs --exclude '*' --include 'tinymce/6/*' + env: + AWS_ACCESS_KEY_ID: ${{ secrets.PRODUCTION_AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.PRODUCTION_AWS_SECRET_ACCESS_KEY }} + AWS_EC2_METADATA_DISABLED: true - - name: (deploy) Upload to S3 - run: aws s3 sync --acl=public-read --delete ./build/site s3://tiny-cloud-antora-docs-production/docs + - name: (deploy) Upload images to S3 + run: aws s3 sync --acl=public-read ./build/site/_ s3://tiny-cloud-antora-docs-production/docs/_ --exclude '*' --include 'img' env: AWS_ACCESS_KEY_ID: ${{ secrets.PRODUCTION_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.PRODUCTION_AWS_SECRET_ACCESS_KEY }} diff --git a/.github/workflows/staging_6_docs.yml b/.github/workflows/staging_6_docs.yml index b52c2bff12..1a3c4698d5 100644 --- a/.github/workflows/staging_6_docs.yml +++ b/.github/workflows/staging_6_docs.yml @@ -11,11 +11,11 @@ on: jobs: build: name: Build Docs and Deploy - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 strategy: matrix: - node-version: [14] + node-version: [21] steps: - uses: actions/checkout@v1 @@ -33,15 +33,17 @@ jobs: run: yarn build - name: (Staging - Docs 6) Build Website - run: yarn generate-site ./antora-playbook-staging.yml + run: yarn antora ./antora-playbook-staging.yml - - name: (Staging - Docs 6) Rename sitemap.xml (Temporary solution - Amit) - shell: bash - run: | - mv ./build/site/sitemap.xml ./build/site/antora-sitemap.xml + - name: (deploy) Upload site to S3 + run: aws s3 sync --acl=public-read --delete ./build/site s3://tiny-cloud-antora-docs-staging/docs --exclude '*' --include 'tinymce/6/*' + env: + AWS_ACCESS_KEY_ID: ${{ secrets.STAGING_AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.STAGING_AWS_SECRET_ACCESS_KEY }} + AWS_EC2_METADATA_DISABLED: true - - name: (deploy) Upload to S3 - run: aws s3 sync --acl=public-read --delete ./build/site s3://tiny-cloud-antora-docs-staging/docs + - name: (deploy) Upload images to S3 + run: aws s3 sync --acl=public-read ./build/site/_ s3://tiny-cloud-antora-docs-staging/docs/_ --exclude '*' --include 'img' env: AWS_ACCESS_KEY_ID: ${{ secrets.STAGING_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.STAGING_AWS_SECRET_ACCESS_KEY }} diff --git a/antora.yml b/antora.yml index d4ed3cc5c5..cf0f519a87 100644 --- a/antora.yml +++ b/antora.yml @@ -1,7 +1,6 @@ name: tinymce title: TinyMCE Documentation -version: 'latest' -display_version: '6' +version: '6' asciidoc: attributes: # anchor configuration (the @ allows it to be overridden if required) diff --git a/changelog.md b/changelog.md index 9c9364a31c..149a578f1d 100644 --- a/changelog.md +++ b/changelog.md @@ -33,6 +33,10 @@ The format is loosely based on [Keep a Changelog](https://keepachangelog.com/en/ - DOC-2240: add new `understanding-editor-loads.adoc` to `how-to-guide` section. +### 2024-01-18 + +- DOC-1925: Add `Skins and Icons examples` to examples.adoc index page + ### 2023-01-15 - DOC-2235: changes and updates to `invalid-api-key.adoc` page. diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index 3659c487f3..4e21607a64 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -226,7 +226,7 @@ *** xref:distraction-free-demo.adoc[Distraction-free editor] ** xref:examples.adoc#integration-examples[Integration examples] *** xref:ie-template-creation.adoc[Template creation example] -** Tiny Skins and Icon Packs +** xref:examples.adoc#skins-and-icons-examples[Skins and Icons examples] *** xref:bootstrap-demo.adoc[Bootstrap Demo] *** xref:borderless-demo.adoc[Borderless Demo] *** xref:fabric-demo.adoc[Fabric Demo] diff --git a/modules/ROOT/pages/6.4.1-release-notes.adoc b/modules/ROOT/pages/6.4.1-release-notes.adoc index 48c9c12180..1c07312036 100644 --- a/modules/ROOT/pages/6.4.1-release-notes.adoc +++ b/modules/ROOT/pages/6.4.1-release-notes.adoc @@ -1074,15 +1074,13 @@ In {productname} 6.4.1, this issue has been resolved. In previous versions of {productname}, when the editor is within a scrollable container, the toolbar would remain visible when the editor is scrolled out of view. +[[infinite-resize]] === Editor increases the height indefinitely when using autoresize with `content_css: 'document'` //#TINY-8872 In previous versions of {productname}, it was discovered that the editor had some issues with the autoresize plugin when using `content_css: 'document'`, which caused the editor height to expand indefinitely. -To fix this issue, {productname} addressed the conflict between the document skin's CSS and the autoresize bottom margin setting. After this fix, the resize function now checks for loops and considers the margin bottom as always set to 0 instead of autoresize bottom margin, which ensutes that the editor's height is calculated correctly. - -In {productname} 6.4.1, the default number of columns, 5, are now used when any of these options is set to 0 or less, preventing this issue from occurring. - +To fix this issue, {productname} addressed the conflict between the document skin's CSS and the autoresize bottom margin setting. After this fix, the resize function now checks for loops and considers the margin bottom as always set to 0 instead of autoresize bottom margin, which ensutes that the editor's height is calculated correctly. [[known-issues]] == Known issues diff --git a/modules/ROOT/pages/custom-dictionaries-for-tiny-spellchecker.adoc b/modules/ROOT/pages/custom-dictionaries-for-tiny-spellchecker.adoc index 82cbd09128..1c56ed6686 100644 --- a/modules/ROOT/pages/custom-dictionaries-for-tiny-spellchecker.adoc +++ b/modules/ROOT/pages/custom-dictionaries-for-tiny-spellchecker.adoc @@ -5,9 +5,9 @@ [[creating-custom-dictionary-files]] == Creating custom dictionary files -One custom dictionary can be created for each language supported by the spell checker (see xref:introduction-to-tiny-spellchecker.adoc#supported-languages[supported languages]), as well as an additional "global" dictionary that contains words that are valid across all languages, such as trademarks. +One custom dictionary can be created for each language already supported by the spell checker (see xref:introduction-to-tiny-spellchecker.adoc#supported-languages[supported languages]) or any arbitrary language added by additional Hunspell dictionary files included in Hunspell Dictionary Path (See xref:self-hosting-hunspell.adoc[Add Hunspell dictionaries to Spell Checker Pro]). It's also possible to define an additional "global" dictionary that contains words that are valid across all languages, such as trademarks. -A dictionary file for a particular language must be named with the language code of the language (see xref:introduction-to-tiny-spellchecker.adoc#supported-languages[supported languages] for language codes), plus the suffix `+.txt+`: E.g. `+en.txt+`, `+en_gb.txt+`, `+fr.txt+`, `+de.txt+` etc. +A custom dictionary file for a particular language must be named with the language code of the language (see xref:introduction-to-tiny-spellchecker.adoc#supported-languages[supported languages] for language code examples), plus the suffix `+.txt+`: E.g. `+en.txt+`, `+en_gb.txt+`, `+fr.txt+`, `+de.txt+` etc. The "global" dictionary file for language-independent words must be called "global.txt". diff --git a/modules/ROOT/pages/examples.adoc b/modules/ROOT/pages/examples.adoc index 5dc80f292f..3c9fd7891d 100644 --- a/modules/ROOT/pages/examples.adoc +++ b/modules/ROOT/pages/examples.adoc @@ -11,3 +11,8 @@ include::partial$index-pages/general-examples.adoc[] == Integration examples include::partial$index-pages/integration-examples.adoc[] + +[[skins-and-icons-examples]] +== Skins and Icons examples + +include::partial$index-pages/skins-and-icons-examples.adoc[] diff --git a/modules/ROOT/pages/self-hosting-hunspell.adoc b/modules/ROOT/pages/self-hosting-hunspell.adoc index 5998804d00..2bd22952d5 100644 --- a/modules/ROOT/pages/self-hosting-hunspell.adoc +++ b/modules/ROOT/pages/self-hosting-hunspell.adoc @@ -22,7 +22,8 @@ To add Hunspell dictionaries to a self-hosted {productname}: `+hunspell-dictionaries-all.zip+`:: This package contains all the Hunspell dictionaries that the spelling service supports. You will need to ensure that their license matches your requirements. -Hunspell dictionaries can be downloaded from other sources, but will need to be stored in the structure shown in xref:hunspell-dictionary-storage-for-spell-checker-pro[Hunspell dictionary storage for Spell Checker Pro]. Not all Hunspell dictionary languages work with Spell Checker Pro, for a list of supported languages, see: xref:introduction-to-tiny-spellchecker.adoc#supported-languages[Spell Checker Pro plugin - Supported languages]. +You can remove unwanted dictionaries and their associated directories, but the file structure must be respected. +Hunspell dictionaries can be downloaded from other sources, but will need to be stored in the structure shown in xref:hunspell-dictionary-storage-for-spell-checker-pro[Hunspell dictionary storage for Spell Checker Pro]. == Configuring the spelling service to use Hunspell dictionaries @@ -31,7 +32,81 @@ include::partial$misc/hunspell-dictionaries-path.adoc[] [[hunspell-dictionary-storage-for-spell-checker-pro]] == Hunspell dictionary storage for Spell Checker Pro -You can remove unwanted dictionaries and their associated directories, but the file structure must be as follows (including filenames): +Each Hunspell dictionary comes in two files. The .dic file which is the list of words, and the .aff file which is a list of rules and other options. These rules tell Hunspell, for example, how to convert a word into its plural or possessive forms. +These files should be named following the language tag definition described in RFC 5646, using "-" or "_" as separator. + +There are two file structures available for storing Hunspell dictionaries. + +=== Flat structure + +[source,pre] +---- +├── af_ZA.aff +├── af_ZA.dic +├── af_ZA.license +├── da.aff +├── da.dic +├── da.license +├── de_DE.aff +├── de_DE.dic +├── de_DE.license +├── en_AU.aff +├── en_AU.dic +├── en_AU.license +├── en_CA.aff +├── en_CA.dic +├── en_CA.license +├── en_GB.aff +├── en_GB.dic +├── en_GB.license +├── en_medical.aff +├── en_medical.dic +├── en_medical.license +├── en_US.aff +├── en_US.dic +├── en_US.license +├── es.aff +├── es.dic +├── es.license +├── fr.aff +├── fr.dic +├── fr.license +├── hu.aff +├── hu.dic +├── hu.license +├── it_IT.aff +├── it_IT.dic +├── it_IT.license +├── mi_NZ.aff +├── mi_NZ.dic +├── mi_NZ.license +├── nb_NO.aff +├── nb_NO.dic +├── nb_NO.license +├── nl_NL.aff +├── nl_NL.dic +├── nl_NL.license +├── nn.aff +├── nn.dic +├── nn.license +├── pl.aff +├── pl.dic +├── pl.license +├── pt_BR.aff +├── pt_BR.dic +├── pt_BR.license +├── pt_PT.aff +├── pt_PT.dic +├── pt_PT.license +├── sv_FI.aff +│── sv_FI.dic +├── sv_FI.license +├── sv_SE.aff +├── sv_SE.dic +└── sv_SE.license +---- + +=== Nested structure [source,pre] ---- @@ -121,6 +196,9 @@ You can remove unwanted dictionaries and their associated directories, but the f └── sv_SE.dic ---- +Both structures may be used at the same time. If you provide dictionary files for the same language tag in both ways, Spell Checker Pro will try to load the nested dictionary files first. If they're not correct, then flat structured files will be loaded. + + === Missing Dictionaries Where a Hunspell dictionary has not been provided, the spelling service will fallback to the built-in dictionaries for supported languages. For a list of supported Spell Checker languages, see: xref:introduction-to-tiny-spellchecker.adoc#spellchecker_languages[Spell Checker Pro plugin - Supported languages]. diff --git a/modules/ROOT/partials/configuration/autoresize_bottom_margin.adoc b/modules/ROOT/partials/configuration/autoresize_bottom_margin.adoc index 60c1966192..95f85ef565 100644 --- a/modules/ROOT/partials/configuration/autoresize_bottom_margin.adoc +++ b/modules/ROOT/partials/configuration/autoresize_bottom_margin.adoc @@ -16,11 +16,11 @@ tinymce.init({ }); ---- -As of version 6.3, {productname} checks for the {productname} resize function entering a loop. +As of version 6.4.1, {productname} checks for the {productname} resize function entering a loop. If the function is detected as doing so, the document’s `+margin-bottom+` value is set to 0, instead of whatever value is assigned to `autoresize_bottom_margin`. -This prevents an xref:6.3-release-notes.adoc#the-autoresize-plugin-caused-the-editor-area-to-infinitely-resize-when-content_css-was-set-to-document[infinite resizing bug from presenting]. +This prevents an xref:6.4.1-release-notes.adoc#infinite-resize[infinite resizing bug from presenting]. To prevent the resize function from even entering this loop, `+autoresize_bottom_margin+` must be set to a value less than any `+margin-bottom+` value set for the document. diff --git a/modules/ROOT/partials/index-pages/skins-and-icons-examples.adoc b/modules/ROOT/partials/index-pages/skins-and-icons-examples.adoc new file mode 100644 index 0000000000..b81acc73c2 --- /dev/null +++ b/modules/ROOT/partials/index-pages/skins-and-icons-examples.adoc @@ -0,0 +1,81 @@ +This table sets out {productname}'s range of pre-made skins and icon packs included in the {productname} documentation. + +[cols="1,1"] +|=== + +a| +[.lead] +xref:bootstrap-demo.adoc[Bootstrap Demo] + +Example form with colors, forms, and buttons to closely match the default Bootstrap framework UI. + +a| +[.lead] +xref:borderless-demo.adoc[Borderless Demo] + +Default TinyMCE skin without an outer border, ideal for "fullscreen" editing. + +a| +[.lead] +xref:fabric-demo.adoc[Fabric Demo] + +Microsoft design language-inspired Fabric skin with optional custom borders. + +a| +[.lead] +xref:fluent-demo.adoc[Fluent Demo] + +Microsoft design language-inspired Fluent skin with optional custom borders. + +a| +[.lead] +xref:jam-demo.adoc[Jam Icons Demo] + +Icons from JAM icon library used with the Small skin. + +a| +[.lead] +xref:material-classic-demo.adoc[Material Classic Demo] + +Example form with classical Material Design components and Material Classic skin. + +a| +[.lead] +xref:material-outline-demo.adoc[Material Outline Demo] + +Example form with outlined Material Design components and Material Outline skin. + +a| +[.lead] +xref:naked-demo.adoc[Naked Demo] + +Clean and simple text input experience with Naked skin, no outer or toolbar borders. + +a| +[.lead] +xref:outside-demo.adoc[Outside Demo] + +Clean text input with Outside skin, border around editable area, small icon pack. + +a| +[.lead] +xref:small-demo.adoc[Small Icons Demo] + +Smaller buttons using Small skin with smaller default icons. + +a| +[.lead] +xref:snow-demo.adoc[Snow Demo] + +Modern, lightweight editor with Snow skin, looks great with Thin icon pack. + +// Dummy table cell. +// 1. Remove the inline comment markup pre-pending this +// element when the number of cells in the table is +// odd. +// 2. Prepend the inline comment markup to this element +// when the number of cells in the table is even. +a| + +|=== + diff --git a/package.json b/package.json index 2dd81579db..78705a2f70 100644 --- a/package.json +++ b/package.json @@ -10,8 +10,7 @@ "scripts": { "build": "./-scripts/api-reference.sh", "build-local-ref": "./-scripts/api-reference-local.sh", - "generate-site": "./-scripts/generate-site.sh", - "nodemon-dev": "nodemon --exec yarn generate-site ./antora-playbook-dev.yml", + "nodemon-dev": "nodemon --exec yarn antora ./antora-playbook-dev.yml", "server": "http-server build/site/ --port 4000", "serve": "npm-run-all -p nodemon-dev server" },