diff --git a/assets/ckeditor/html_full.js b/assets/ckeditor/html_full.js
new file mode 100644
index 00000000..0110a344
--- /dev/null
+++ b/assets/ckeditor/html_full.js
@@ -0,0 +1,190 @@
+/**
+ * @license Copyright (c) 2014-2022, CKSource Holding sp. z o.o. All rights reserved.
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
+ */
+import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor.js';
+import Alignment from '@ckeditor/ckeditor5-alignment/src/alignment.js';
+import Autoformat from '@ckeditor/ckeditor5-autoformat/src/autoformat.js';
+import Base64UploadAdapter from '@ckeditor/ckeditor5-upload/src/adapters/base64uploadadapter.js';
+import BlockQuote from '@ckeditor/ckeditor5-block-quote/src/blockquote.js';
+import Bold from '@ckeditor/ckeditor5-basic-styles/src/bold.js';
+import Code from '@ckeditor/ckeditor5-basic-styles/src/code.js';
+import CodeBlock from '@ckeditor/ckeditor5-code-block/src/codeblock.js';
+import Essentials from '@ckeditor/ckeditor5-essentials/src/essentials.js';
+import FindAndReplace from '@ckeditor/ckeditor5-find-and-replace/src/findandreplace.js';
+import FontBackgroundColor from '@ckeditor/ckeditor5-font/src/fontbackgroundcolor.js';
+import FontColor from '@ckeditor/ckeditor5-font/src/fontcolor.js';
+import FontFamily from '@ckeditor/ckeditor5-font/src/fontfamily.js';
+import FontSize from '@ckeditor/ckeditor5-font/src/fontsize.js';
+import GeneralHtmlSupport from '@ckeditor/ckeditor5-html-support/src/generalhtmlsupport.js';
+import Heading from '@ckeditor/ckeditor5-heading/src/heading.js';
+import Highlight from '@ckeditor/ckeditor5-highlight/src/highlight.js';
+import HorizontalLine from '@ckeditor/ckeditor5-horizontal-line/src/horizontalline.js';
+import HtmlComment from '@ckeditor/ckeditor5-html-support/src/htmlcomment.js';
+import HtmlEmbed from '@ckeditor/ckeditor5-html-embed/src/htmlembed.js';
+import Image from '@ckeditor/ckeditor5-image/src/image.js';
+import ImageResize from '@ckeditor/ckeditor5-image/src/imageresize.js';
+import ImageStyle from '@ckeditor/ckeditor5-image/src/imagestyle.js';
+import ImageToolbar from '@ckeditor/ckeditor5-image/src/imagetoolbar.js';
+import ImageUpload from '@ckeditor/ckeditor5-image/src/imageupload.js';
+import Indent from '@ckeditor/ckeditor5-indent/src/indent.js';
+import IndentBlock from '@ckeditor/ckeditor5-indent/src/indentblock.js';
+import Italic from '@ckeditor/ckeditor5-basic-styles/src/italic.js';
+import Link from '@ckeditor/ckeditor5-link/src/link.js';
+import LinkImage from '@ckeditor/ckeditor5-link/src/linkimage.js';
+import List from '@ckeditor/ckeditor5-list/src/list.js';
+import ListProperties from '@ckeditor/ckeditor5-list/src/listproperties.js';
+import Markdown from '@ckeditor/ckeditor5-markdown-gfm/src/markdown.js';
+import MediaEmbed from '@ckeditor/ckeditor5-media-embed/src/mediaembed.js';
+import MediaEmbedToolbar from '@ckeditor/ckeditor5-media-embed/src/mediaembedtoolbar.js';
+import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph.js';
+import PasteFromOffice from '@ckeditor/ckeditor5-paste-from-office/src/pastefromoffice.js';
+import RemoveFormat from '@ckeditor/ckeditor5-remove-format/src/removeformat.js';
+import SourceEditing from '@ckeditor/ckeditor5-source-editing/src/sourceediting.js';
+import SpecialCharacters from '@ckeditor/ckeditor5-special-characters/src/specialcharacters.js';
+import SpecialCharactersArrows from '@ckeditor/ckeditor5-special-characters/src/specialcharactersarrows.js';
+import SpecialCharactersCurrency from '@ckeditor/ckeditor5-special-characters/src/specialcharacterscurrency.js';
+import SpecialCharactersEssentials from '@ckeditor/ckeditor5-special-characters/src/specialcharactersessentials.js';
+import SpecialCharactersLatin from '@ckeditor/ckeditor5-special-characters/src/specialcharacterslatin.js';
+import SpecialCharactersMathematical from '@ckeditor/ckeditor5-special-characters/src/specialcharactersmathematical.js';
+import SpecialCharactersText from '@ckeditor/ckeditor5-special-characters/src/specialcharacterstext.js';
+import Strikethrough from '@ckeditor/ckeditor5-basic-styles/src/strikethrough.js';
+import Subscript from '@ckeditor/ckeditor5-basic-styles/src/subscript.js';
+import Superscript from '@ckeditor/ckeditor5-basic-styles/src/superscript.js';
+import Table from '@ckeditor/ckeditor5-table/src/table.js';
+import TableCaption from '@ckeditor/ckeditor5-table/src/tablecaption.js';
+import TableCellProperties from '@ckeditor/ckeditor5-table/src/tablecellproperties';
+import TableColumnResize from '@ckeditor/ckeditor5-table/src/tablecolumnresize.js';
+import TableProperties from '@ckeditor/ckeditor5-table/src/tableproperties';
+import TableToolbar from '@ckeditor/ckeditor5-table/src/tabletoolbar.js';
+import Underline from '@ckeditor/ckeditor5-basic-styles/src/underline.js';
+import WordCount from '@ckeditor/ckeditor5-word-count/src/wordcount.js';
+import EditorWatchdog from '@ckeditor/ckeditor5-watchdog/src/editorwatchdog.js';
+
+class Editor extends ClassicEditor {}
+
+// Plugins to include in the build.
+Editor.builtinPlugins = [
+ Alignment,
+ Autoformat,
+ Base64UploadAdapter,
+ BlockQuote,
+ Bold,
+ Code,
+ CodeBlock,
+ Essentials,
+ FindAndReplace,
+ FontBackgroundColor,
+ FontColor,
+ FontFamily,
+ FontSize,
+ GeneralHtmlSupport,
+ Heading,
+ Highlight,
+ HorizontalLine,
+ HtmlComment,
+ HtmlEmbed,
+ Image,
+ ImageResize,
+ ImageStyle,
+ ImageToolbar,
+ ImageUpload,
+ Indent,
+ IndentBlock,
+ Italic,
+ Link,
+ LinkImage,
+ List,
+ ListProperties,
+ MediaEmbed,
+ MediaEmbedToolbar,
+ Paragraph,
+ PasteFromOffice,
+ RemoveFormat,
+ SourceEditing,
+ SpecialCharacters,
+ SpecialCharactersArrows,
+ SpecialCharactersCurrency,
+ SpecialCharactersEssentials,
+ SpecialCharactersLatin,
+ SpecialCharactersMathematical,
+ SpecialCharactersText,
+ Strikethrough,
+ Subscript,
+ Superscript,
+ Table,
+ TableCaption,
+ TableCellProperties,
+ TableColumnResize,
+ TableProperties,
+ TableToolbar,
+ Underline,
+ WordCount
+];
+
+// Editor configuration.
+Editor.defaultConfig = {
+ toolbar: {
+ items: [
+ 'heading',
+ 'alignment',
+ '|',
+ 'bold',
+ 'italic',
+ 'underline',
+ 'strikethrough',
+ 'subscript',
+ 'superscript',
+ 'removeFormat',
+ 'highlight',
+ '|',
+ 'fontBackgroundColor',
+ 'fontColor',
+ 'fontSize',
+ '|',
+ 'fontFamily',
+ 'link',
+ 'bulletedList',
+ 'numberedList',
+ 'outdent',
+ 'indent',
+ '|',
+ 'specialCharacters',
+ 'horizontalLine',
+ '|',
+ 'imageUpload',
+ 'blockQuote',
+ 'insertTable',
+ 'mediaEmbed',
+ 'code',
+ 'codeBlock',
+ 'htmlEmbed',
+ '|',
+ 'undo',
+ 'redo',
+ 'findAndReplace',
+ 'sourceEditing',
+ ]
+ },
+ language: 'en',
+ image: {
+ toolbar: [
+ 'imageTextAlternative',
+ 'imageStyle:inline',
+ 'imageStyle:block',
+ 'imageStyle:side',
+ 'linkImage'
+ ]
+ },
+ table: {
+ contentToolbar: [
+ 'tableColumn',
+ 'tableRow',
+ 'mergeTableCells',
+ 'tableCellProperties',
+ 'tableProperties'
+ ]
+ }
+};
+
+export default { Editor, EditorWatchdog };
diff --git a/assets/ckeditor/markdown_full.js b/assets/ckeditor/markdown_full.js
index 0e0d1d22..beac1484 100644
--- a/assets/ckeditor/markdown_full.js
+++ b/assets/ckeditor/markdown_full.js
@@ -3,67 +3,126 @@
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
*/
import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor.js';
+import Alignment from '@ckeditor/ckeditor5-alignment/src/alignment.js';
import Autoformat from '@ckeditor/ckeditor5-autoformat/src/autoformat.js';
+import Base64UploadAdapter from '@ckeditor/ckeditor5-upload/src/adapters/base64uploadadapter.js';
import BlockQuote from '@ckeditor/ckeditor5-block-quote/src/blockquote.js';
import Bold from '@ckeditor/ckeditor5-basic-styles/src/bold.js';
import Code from '@ckeditor/ckeditor5-basic-styles/src/code.js';
import CodeBlock from '@ckeditor/ckeditor5-code-block/src/codeblock.js';
import Essentials from '@ckeditor/ckeditor5-essentials/src/essentials.js';
import FindAndReplace from '@ckeditor/ckeditor5-find-and-replace/src/findandreplace.js';
+import FontBackgroundColor from '@ckeditor/ckeditor5-font/src/fontbackgroundcolor.js';
+import FontColor from '@ckeditor/ckeditor5-font/src/fontcolor.js';
+import FontFamily from '@ckeditor/ckeditor5-font/src/fontfamily.js';
+import FontSize from '@ckeditor/ckeditor5-font/src/fontsize.js';
import GeneralHtmlSupport from '@ckeditor/ckeditor5-html-support/src/generalhtmlsupport.js';
import Heading from '@ckeditor/ckeditor5-heading/src/heading.js';
+import Highlight from '@ckeditor/ckeditor5-highlight/src/highlight.js';
+import HorizontalLine from '@ckeditor/ckeditor5-horizontal-line/src/horizontalline.js';
+import HtmlComment from '@ckeditor/ckeditor5-html-support/src/htmlcomment.js';
+import HtmlEmbed from '@ckeditor/ckeditor5-html-embed/src/htmlembed.js';
import Image from '@ckeditor/ckeditor5-image/src/image.js';
+import ImageResize from '@ckeditor/ckeditor5-image/src/imageresize.js';
import ImageStyle from '@ckeditor/ckeditor5-image/src/imagestyle.js';
import ImageToolbar from '@ckeditor/ckeditor5-image/src/imagetoolbar.js';
import ImageUpload from '@ckeditor/ckeditor5-image/src/imageupload.js';
import Indent from '@ckeditor/ckeditor5-indent/src/indent.js';
+import IndentBlock from '@ckeditor/ckeditor5-indent/src/indentblock.js';
import Italic from '@ckeditor/ckeditor5-basic-styles/src/italic.js';
import Link from '@ckeditor/ckeditor5-link/src/link.js';
+import LinkImage from '@ckeditor/ckeditor5-link/src/linkimage.js';
import List from '@ckeditor/ckeditor5-list/src/list.js';
+import ListProperties from '@ckeditor/ckeditor5-list/src/listproperties.js';
import Markdown from '@ckeditor/ckeditor5-markdown-gfm/src/markdown.js';
import MediaEmbed from '@ckeditor/ckeditor5-media-embed/src/mediaembed.js';
+import MediaEmbedToolbar from '@ckeditor/ckeditor5-media-embed/src/mediaembedtoolbar.js';
import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph.js';
import PasteFromOffice from '@ckeditor/ckeditor5-paste-from-office/src/pastefromoffice.js';
+import RemoveFormat from '@ckeditor/ckeditor5-remove-format/src/removeformat.js';
import SourceEditing from '@ckeditor/ckeditor5-source-editing/src/sourceediting.js';
import SpecialCharacters from '@ckeditor/ckeditor5-special-characters/src/specialcharacters.js';
+import SpecialCharactersArrows from '@ckeditor/ckeditor5-special-characters/src/specialcharactersarrows.js';
+import SpecialCharactersCurrency from '@ckeditor/ckeditor5-special-characters/src/specialcharacterscurrency.js';
import SpecialCharactersEssentials from '@ckeditor/ckeditor5-special-characters/src/specialcharactersessentials.js';
+import SpecialCharactersLatin from '@ckeditor/ckeditor5-special-characters/src/specialcharacterslatin.js';
import SpecialCharactersMathematical from '@ckeditor/ckeditor5-special-characters/src/specialcharactersmathematical.js';
+import SpecialCharactersText from '@ckeditor/ckeditor5-special-characters/src/specialcharacterstext.js';
+import Strikethrough from '@ckeditor/ckeditor5-basic-styles/src/strikethrough.js';
+import Subscript from '@ckeditor/ckeditor5-basic-styles/src/subscript.js';
+import Superscript from '@ckeditor/ckeditor5-basic-styles/src/superscript.js';
import Table from '@ckeditor/ckeditor5-table/src/table.js';
+import TableCaption from '@ckeditor/ckeditor5-table/src/tablecaption.js';
+import TableCellProperties from '@ckeditor/ckeditor5-table/src/tablecellproperties';
+import TableColumnResize from '@ckeditor/ckeditor5-table/src/tablecolumnresize.js';
+import TableProperties from '@ckeditor/ckeditor5-table/src/tableproperties';
import TableToolbar from '@ckeditor/ckeditor5-table/src/tabletoolbar.js';
-import TextTransformation from '@ckeditor/ckeditor5-typing/src/texttransformation.js';
+import Underline from '@ckeditor/ckeditor5-basic-styles/src/underline.js';
+import WordCount from '@ckeditor/ckeditor5-word-count/src/wordcount.js';
+import EditorWatchdog from '@ckeditor/ckeditor5-watchdog/src/editorwatchdog.js';
+
+import ExtendedMarkdown from "./plugins/extendedmarkdown.js";
class Editor extends ClassicEditor {}
// Plugins to include in the build.
Editor.builtinPlugins = [
+ Alignment,
Autoformat,
+ Base64UploadAdapter,
BlockQuote,
Bold,
Code,
CodeBlock,
Essentials,
FindAndReplace,
+ FontBackgroundColor,
+ FontColor,
+ FontFamily,
+ FontSize,
GeneralHtmlSupport,
Heading,
+ Highlight,
+ HorizontalLine,
+ HtmlComment,
+ HtmlEmbed,
Image,
+ ImageResize,
ImageStyle,
ImageToolbar,
ImageUpload,
Indent,
+ IndentBlock,
Italic,
Link,
+ LinkImage,
List,
- Markdown,
- MediaEmbed,
+ ListProperties,
+ //MediaEmbed,
+ //MediaEmbedToolbar,
Paragraph,
PasteFromOffice,
+ RemoveFormat,
SourceEditing,
SpecialCharacters,
+ SpecialCharactersArrows,
+ SpecialCharactersCurrency,
SpecialCharactersEssentials,
+ SpecialCharactersLatin,
SpecialCharactersMathematical,
+ SpecialCharactersText,
+ Strikethrough,
+ Subscript,
+ Superscript,
Table,
+ TableCaption,
+ TableCellProperties,
+ TableColumnResize,
+ TableProperties,
TableToolbar,
- TextTransformation
+ Underline,
+ WordCount,
+ ExtendedMarkdown
];
// Editor configuration.
@@ -71,27 +130,43 @@ Editor.defaultConfig = {
toolbar: {
items: [
'heading',
+ 'alignment',
'|',
'bold',
'italic',
+ 'underline',
+ 'strikethrough',
+ 'subscript',
+ 'superscript',
+ 'removeFormat',
+ 'highlight',
+ '|',
+ 'fontBackgroundColor',
+ 'fontColor',
+ 'fontSize',
+ '|',
+ 'fontFamily',
'link',
'bulletedList',
'numberedList',
- '|',
'outdent',
'indent',
'|',
+ 'specialCharacters',
+ 'horizontalLine',
+ '|',
'imageUpload',
'blockQuote',
'insertTable',
- 'mediaEmbed',
- 'undo',
- 'redo',
- 'specialCharacters',
+ //'mediaEmbed',
'code',
'codeBlock',
+ 'htmlEmbed',
+ '|',
+ 'undo',
+ 'redo',
+ 'findAndReplace',
'sourceEditing',
- 'findAndReplace'
]
},
language: 'en',
@@ -100,16 +175,19 @@ Editor.defaultConfig = {
'imageTextAlternative',
'imageStyle:inline',
'imageStyle:block',
- 'imageStyle:side'
+ 'imageStyle:side',
+ 'linkImage'
]
},
table: {
contentToolbar: [
'tableColumn',
'tableRow',
- 'mergeTableCells'
+ 'mergeTableCells',
+ 'tableCellProperties',
+ 'tableProperties'
]
}
};
-export default Editor;
+export default { Editor, EditorWatchdog };
diff --git a/assets/ckeditor/markdown_single_line.js b/assets/ckeditor/markdown_single_line.js
index 66031293..96e8d556 100644
--- a/assets/ckeditor/markdown_single_line.js
+++ b/assets/ckeditor/markdown_single_line.js
@@ -4,66 +4,63 @@
*/
import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor.js';
import Autoformat from '@ckeditor/ckeditor5-autoformat/src/autoformat.js';
-import BlockQuote from '@ckeditor/ckeditor5-block-quote/src/blockquote.js';
+import AutoLink from '@ckeditor/ckeditor5-link/src/autolink.js';
import Bold from '@ckeditor/ckeditor5-basic-styles/src/bold.js';
import Code from '@ckeditor/ckeditor5-basic-styles/src/code.js';
-import CodeBlock from '@ckeditor/ckeditor5-code-block/src/codeblock.js';
import Essentials from '@ckeditor/ckeditor5-essentials/src/essentials.js';
import FindAndReplace from '@ckeditor/ckeditor5-find-and-replace/src/findandreplace.js';
-import GeneralHtmlSupport from '@ckeditor/ckeditor5-html-support/src/generalhtmlsupport.js';
-import Heading from '@ckeditor/ckeditor5-heading/src/heading.js';
-import Image from '@ckeditor/ckeditor5-image/src/image.js';
-import ImageStyle from '@ckeditor/ckeditor5-image/src/imagestyle.js';
-import ImageToolbar from '@ckeditor/ckeditor5-image/src/imagetoolbar.js';
-import ImageUpload from '@ckeditor/ckeditor5-image/src/imageupload.js';
-import Indent from '@ckeditor/ckeditor5-indent/src/indent.js';
+import Highlight from '@ckeditor/ckeditor5-highlight/src/highlight.js';
import Italic from '@ckeditor/ckeditor5-basic-styles/src/italic.js';
import Link from '@ckeditor/ckeditor5-link/src/link.js';
-import List from '@ckeditor/ckeditor5-list/src/list.js';
-import Markdown from '@ckeditor/ckeditor5-markdown-gfm/src/markdown.js';
-import MediaEmbed from '@ckeditor/ckeditor5-media-embed/src/mediaembed.js';
import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph.js';
-import PasteFromOffice from '@ckeditor/ckeditor5-paste-from-office/src/pastefromoffice.js';
+import RemoveFormat from '@ckeditor/ckeditor5-remove-format/src/removeformat.js';
import SourceEditing from '@ckeditor/ckeditor5-source-editing/src/sourceediting.js';
import SpecialCharacters from '@ckeditor/ckeditor5-special-characters/src/specialcharacters.js';
+import SpecialCharactersArrows from '@ckeditor/ckeditor5-special-characters/src/specialcharactersarrows.js';
+import SpecialCharactersCurrency from '@ckeditor/ckeditor5-special-characters/src/specialcharacterscurrency.js';
import SpecialCharactersEssentials from '@ckeditor/ckeditor5-special-characters/src/specialcharactersessentials.js';
+import SpecialCharactersLatin from '@ckeditor/ckeditor5-special-characters/src/specialcharacterslatin.js';
import SpecialCharactersMathematical from '@ckeditor/ckeditor5-special-characters/src/specialcharactersmathematical.js';
-import Table from '@ckeditor/ckeditor5-table/src/table.js';
-import TableToolbar from '@ckeditor/ckeditor5-table/src/tabletoolbar.js';
-import TextTransformation from '@ckeditor/ckeditor5-typing/src/texttransformation.js';
+import SpecialCharactersText from '@ckeditor/ckeditor5-special-characters/src/specialcharacterstext.js';
+import Strikethrough from '@ckeditor/ckeditor5-basic-styles/src/strikethrough.js';
+import Subscript from '@ckeditor/ckeditor5-basic-styles/src/subscript.js';
+import Superscript from '@ckeditor/ckeditor5-basic-styles/src/superscript.js';
+import Underline from '@ckeditor/ckeditor5-basic-styles/src/underline.js';
+import EditorWatchdog from '@ckeditor/ckeditor5-watchdog/src/editorwatchdog.js';
+
+import ExtendedMarkdownInline from "./plugins/extendedMarkdownInline";
+import SingleLinePlugin from "./plugins/singleLine";
class Editor extends ClassicEditor {}
// Plugins to include in the build.
Editor.builtinPlugins = [
Autoformat,
- BlockQuote,
+ AutoLink,
Bold,
Code,
- CodeBlock,
- Essentials,
FindAndReplace,
- GeneralHtmlSupport,
- Heading,
- Image,
- ImageStyle,
- ImageToolbar,
- ImageUpload,
- Indent,
+ Highlight,
Italic,
Link,
- List,
- Markdown,
- MediaEmbed,
Paragraph,
- PasteFromOffice,
+ RemoveFormat,
SourceEditing,
SpecialCharacters,
+ SpecialCharactersArrows,
+ SpecialCharactersCurrency,
SpecialCharactersEssentials,
+ SpecialCharactersLatin,
SpecialCharactersMathematical,
- Table,
- TableToolbar,
- TextTransformation
+ SpecialCharactersText,
+ Strikethrough,
+ Subscript,
+ Superscript,
+ Underline,
+ Essentials,
+
+ ExtendedMarkdownInline,
+ SingleLinePlugin,
];
// Editor configuration.
@@ -72,33 +69,24 @@ Editor.defaultConfig = {
items: [
'bold',
'italic',
+ 'underline',
+ 'strikethrough',
+ 'subscript',
+ 'superscript',
+ 'removeFormat',
+ 'highlight',
+ '|',
'link',
- 'specialCharacters',
'code',
+ 'specialCharacters',
'|',
'undo',
'redo',
- '|',
'findAndReplace',
- 'sourceEditing',
+ 'sourceEditing'
]
},
- language: 'en',
- image: {
- toolbar: [
- 'imageTextAlternative',
- 'imageStyle:inline',
- 'imageStyle:block',
- 'imageStyle:side'
- ]
- },
- table: {
- contentToolbar: [
- 'tableColumn',
- 'tableRow',
- 'mergeTableCells'
- ]
- }
+ language: 'en'
};
-export default Editor;
+export default { Editor, EditorWatchdog };
diff --git a/assets/ckeditor/plugins/extendedMarkdown.js b/assets/ckeditor/plugins/extendedMarkdown.js
new file mode 100644
index 00000000..62478f69
--- /dev/null
+++ b/assets/ckeditor/plugins/extendedMarkdown.js
@@ -0,0 +1,34 @@
+import { Plugin } from 'ckeditor5/src/core';
+import GFMDataProcessor from '@ckeditor/ckeditor5-markdown-gfm/src/gfmdataprocessor';
+
+const ALLOWED_TAGS = [
+ //Common elements
+ 'sup',
+ 'sub',
+];
+
+/**
+ * The GitHub Flavored Markdown (GFM) plugin with added HTML tags, which are kept in the output. (inline mode)
+ *
+ */
+export default class ExtendedMarkdown extends Plugin {
+
+ /**
+ * @inheritDoc
+ */
+ constructor( editor ) {
+ super( editor );
+
+ editor.data.processor = new GFMDataProcessor( editor.data.viewDocument );
+ for (const tag of ALLOWED_TAGS) {
+ editor.data.processor.keepHtml(tag);
+ }
+ }
+
+ /**
+ * @inheritDoc
+ */
+ static get pluginName() {
+ return 'Markdown';
+ }
+}
diff --git a/assets/ckeditor/plugins/extendedMarkdownInline.js b/assets/ckeditor/plugins/extendedMarkdownInline.js
new file mode 100644
index 00000000..c075364b
--- /dev/null
+++ b/assets/ckeditor/plugins/extendedMarkdownInline.js
@@ -0,0 +1,40 @@
+import { Plugin } from 'ckeditor5/src/core';
+import GFMDataProcessor from '@ckeditor/ckeditor5-markdown-gfm/src/gfmdataprocessor';
+
+const ALLOWED_TAGS = [
+ //Common elements
+ 'sup',
+ 'sub',
+ 'u',
+ 'kbd',
+ 'mark',
+ 'ins',
+ 'small',
+ 'abbr',
+];
+
+
+/**
+ * The GitHub Flavored Markdown (GFM) plugin with added HTML tags, which are kept in the output. (inline mode)
+ *
+ */
+export default class ExtendedMarkdownInline extends Plugin {
+ /**
+ * @inheritDoc
+ */
+ constructor( editor ) {
+ super( editor );
+
+ editor.data.processor = new GFMDataProcessor( editor.data.viewDocument );
+ for (const tag of ALLOWED_TAGS) {
+ editor.data.processor.keepHtml(tag);
+ }
+ }
+
+ /**
+ * @inheritDoc
+ */
+ static get pluginName() {
+ return 'Markdown';
+ }
+}
diff --git a/assets/ckeditor/plugins/singleLine.js b/assets/ckeditor/plugins/singleLine.js
new file mode 100644
index 00000000..deb75ad4
--- /dev/null
+++ b/assets/ckeditor/plugins/singleLine.js
@@ -0,0 +1,29 @@
+import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
+
+export default class SingleLinePlugin extends Plugin {
+ init() {
+ const editor = this.editor;
+ const view = editor.editing.view;
+ const viewDocument = view.document;
+
+ //Listen to enter presses
+ this.listenTo( viewDocument, 'enter', ( evt, data ) => {
+ //If user presses enter, prevent the enter action
+ evt.stop();
+ }, { priority: 'high' } );
+
+ //And clipboard pastes
+ this.listenTo( viewDocument, 'clipboardInput', ( evt, data ) => {
+ let dataTransfer = data.dataTransfer;
+
+ //Clean text input (replace newlines with spaces)
+ let input = dataTransfer.getData("text");
+ let cleaned = input.replace(/\r?\n/g, ' ');
+
+ //We can not use the dataTransfer.setData method because the old object is somehow protected
+ data.dataTransfer = new DataTransfer();
+ data.dataTransfer.setData("text", cleaned);
+
+ }, { priority: 'high' } );
+ }
+}
\ No newline at end of file
diff --git a/assets/controllers/elements/ckeditor_controller.js b/assets/controllers/elements/ckeditor_controller.js
index 79f281c4..d0fdf5b8 100644
--- a/assets/controllers/elements/ckeditor_controller.js
+++ b/assets/controllers/elements/ckeditor_controller.js
@@ -2,6 +2,10 @@ import {Controller} from "@hotwired/stimulus";
import { default as FullEditor } from "../../ckeditor/markdown_full";
import { default as SingleLineEditor} from "../../ckeditor/markdown_single_line";
+import { default as HTMLEditor } from "../../ckeditor/html_full";
+
+import EditorWatchdog from '@ckeditor/ckeditor5-watchdog/src/editorwatchdog';
+
/* stimulusFetch: 'lazy' */
export default class extends Controller {
@@ -13,23 +17,46 @@ export default class extends Controller {
if(output_format == 'markdown') {
if(mode == 'full') {
- EDITOR_TYPE = FullEditor;
+ EDITOR_TYPE = FullEditor['Editor'];
} else if(mode == 'single_line') {
- EDITOR_TYPE = SingleLineEditor;
+ EDITOR_TYPE = SingleLineEditor['Editor'];
}
+ } else if(output_format == 'html') {
+ EDITOR_TYPE = HTMLEditor['Editor'];
} else {
console.error("Unknown output format: " + output-format);
return;
}
- this.editor = EDITOR_TYPE.create(this.element, {
-
- })
+ EDITOR_TYPE.create(this.element)
.then(editor => {
+ if(this.element.disabled) {
+ editor.enableReadOnlyMode("readonly");
+ }
+
console.log(editor);
})
.catch(error => {
console.error(error);
});
+
+ /* const watchdog = new EditorWatchdog();
+ watchdog.setCreator((elementOrData, editorConfig) => {
+ return EDITOR_TYPE.create(elementOrData, editorConfig)
+ .then(editor => {
+ if(this.element.disabled) {
+ editor.enableReadOnlyMode("readonly");
+ }
+
+ console.log(editor);
+ })
+ .catch(error => {
+ console.error(error);
+ });
+ });
+
+ watchdog.create(this.element, {
+
+ });*/
}
}
\ No newline at end of file
diff --git a/package.json b/package.json
index 7a8bbbde..718156de 100644
--- a/package.json
+++ b/package.json
@@ -24,6 +24,7 @@
"build": "encore production --progress"
},
"dependencies": {
+ "@ckeditor/ckeditor5-alignment": "^34.2.0",
"@ckeditor/ckeditor5-autoformat": "^34.2.0",
"@ckeditor/ckeditor5-basic-styles": "^34.2.0",
"@ckeditor/ckeditor5-block-quote": "^34.2.0",
@@ -33,7 +34,11 @@
"@ckeditor/ckeditor5-editor-classic": "^34.2.0",
"@ckeditor/ckeditor5-essentials": "^34.2.0",
"@ckeditor/ckeditor5-find-and-replace": "^34.2.0",
+ "@ckeditor/ckeditor5-font": "^34.2.0",
"@ckeditor/ckeditor5-heading": "^34.2.0",
+ "@ckeditor/ckeditor5-highlight": "^34.2.0",
+ "@ckeditor/ckeditor5-horizontal-line": "^34.2.0",
+ "@ckeditor/ckeditor5-html-embed": "^34.2.0",
"@ckeditor/ckeditor5-html-support": "^34.2.0",
"@ckeditor/ckeditor5-image": "^34.2.0",
"@ckeditor/ckeditor5-indent": "^34.2.0",
@@ -43,11 +48,14 @@
"@ckeditor/ckeditor5-media-embed": "^34.2.0",
"@ckeditor/ckeditor5-paragraph": "^34.2.0",
"@ckeditor/ckeditor5-paste-from-office": "^34.2.0",
+ "@ckeditor/ckeditor5-remove-format": "^34.2.0",
"@ckeditor/ckeditor5-source-editing": "^34.2.0",
"@ckeditor/ckeditor5-special-characters": "^34.2.0",
"@ckeditor/ckeditor5-table": "^34.2.0",
"@ckeditor/ckeditor5-theme-lark": "^34.2.0",
- "@ckeditor/ckeditor5-typing": "^34.2.0",
+ "@ckeditor/ckeditor5-upload": "^34.2.0",
+ "@ckeditor/ckeditor5-watchdog": "^34.2.0",
+ "@ckeditor/ckeditor5-word-count": "^34.2.0",
"@types/typeahead": "^0.11.32",
"@zxing/library": "^0.19.1",
"bootbox": "^5.4.0",
diff --git a/src/Form/LabelOptionsType.php b/src/Form/LabelOptionsType.php
index 1ed9dae5..975ef434 100644
--- a/src/Form/LabelOptionsType.php
+++ b/src/Form/LabelOptionsType.php
@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace App\Form;
use App\Entity\LabelSystem\LabelOptions;
+use App\Form\Type\RichTextEditorType;
use FOS\CKEditorBundle\Form\Type\CKEditorType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
@@ -100,13 +101,13 @@ class LabelOptionsType extends AbstractType
],
]);
- $builder->add('lines', CKEditorType::class, [
+ $builder->add('lines', RichTextEditorType::class, [
'label' => 'label_profile.lines.label',
'empty_data' => '',
+ 'output_format' => 'html',
'attr' => [
'rows' => 4,
],
- 'config_name' => 'label_config',
]);
$builder->add('additional_css', TextareaType::class, [
diff --git a/src/Form/Type/RichTextEditorType.php b/src/Form/Type/RichTextEditorType.php
index d5bef8e0..c6647b6d 100644
--- a/src/Form/Type/RichTextEditorType.php
+++ b/src/Form/Type/RichTextEditorType.php
@@ -18,7 +18,7 @@ class RichTextEditorType extends AbstractType
$resolver->setAllowedValues('mode', ['full', 'single_line']);
$resolver->setDefault('output_format', 'markdown');
- $resolver->setAllowedValues('output_format', ['markdown']);
+ $resolver->setAllowedValues('output_format', ['markdown', 'html']);
}
public function getBlockPrefix()
diff --git a/yarn.lock b/yarn.lock
index cb43d193..1e1c1a34 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -898,6 +898,13 @@
"@babel/helper-validator-identifier" "^7.18.6"
to-fast-properties "^2.0.0"
+"@ckeditor/ckeditor5-alignment@^34.2.0":
+ version "34.2.0"
+ resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-alignment/-/ckeditor5-alignment-34.2.0.tgz#e9a59d138c8f2c17d51c5cb71c5ebae4316ed424"
+ integrity sha512-LpkTL67oaqB2ADLwBPXIFM2iqWSZnCG8OhEjjs7Piuyy7aUudShkbhKwqAhvb37b+MiGYCwuz/HnJlIWAD407Q==
+ dependencies:
+ ckeditor5 "^34.2.0"
+
"@ckeditor/ckeditor5-autoformat@^34.2.0":
version "34.2.0"
resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-autoformat/-/ckeditor5-autoformat-34.2.0.tgz#183c53922d47ed3dd5d4307f4c4339402c8b2500"
@@ -1030,6 +1037,13 @@
ckeditor5 "^34.2.0"
lodash-es "^4.17.15"
+"@ckeditor/ckeditor5-font@^34.2.0":
+ version "34.2.0"
+ resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-font/-/ckeditor5-font-34.2.0.tgz#8fa3f440a888f33f8b3bccad22e806d753fa9048"
+ integrity sha512-hSTxD0D+ad8yNsyM8a3SXvqes7oQah1PEcC3CG3jXmVnVjikWd+iAL959R2UnkJBSY5AZKgF3MCFC69pBIBdxQ==
+ dependencies:
+ ckeditor5 "^34.2.0"
+
"@ckeditor/ckeditor5-heading@^34.2.0":
version "34.2.0"
resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-heading/-/ckeditor5-heading-34.2.0.tgz#a935f5d2fe038bc0182f608fd751e283d5396705"
@@ -1037,6 +1051,27 @@
dependencies:
ckeditor5 "^34.2.0"
+"@ckeditor/ckeditor5-highlight@^34.2.0":
+ version "34.2.0"
+ resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-highlight/-/ckeditor5-highlight-34.2.0.tgz#4872791b6cc0d67563f93f523a83ba0ad4907a62"
+ integrity sha512-v194GQBYSm0jk39R4m0nC49Vg/1iX/HZjWeyP3fnmRzBsXxT+6u2oRsvYmxM1JGa/L1B80N94KrNiTrdvWUpsQ==
+ dependencies:
+ ckeditor5 "^34.2.0"
+
+"@ckeditor/ckeditor5-horizontal-line@^34.2.0":
+ version "34.2.0"
+ resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-horizontal-line/-/ckeditor5-horizontal-line-34.2.0.tgz#8d4df63a48d6684b010e8c33334635b126602915"
+ integrity sha512-BblqWFHOGB4fcKsHm6uH8gkvKA3+76hEBauovqOQLzgAvfC4zNpvcOVrt24hoF7b818Iisgea88eslljL4yX7A==
+ dependencies:
+ ckeditor5 "^34.2.0"
+
+"@ckeditor/ckeditor5-html-embed@^34.2.0":
+ version "34.2.0"
+ resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-html-embed/-/ckeditor5-html-embed-34.2.0.tgz#9f113e62eeffe2554fc0de1fe4134dbf59038e97"
+ integrity sha512-T6x8zKGbAwyzGDkILf4HQmHUiryAwMtmXykaCdfOw9w2abEtZAYJnGr9gvPnZcpyYXxIi3sEw9fPJmvNMub9jg==
+ dependencies:
+ ckeditor5 "^34.2.0"
+
"@ckeditor/ckeditor5-html-support@^34.2.0":
version "34.2.0"
resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-html-support/-/ckeditor5-html-support-34.2.0.tgz#d51350389ddcd18c939bbd60eb07aad997f71b2c"
@@ -1112,6 +1147,13 @@
dependencies:
ckeditor5 "^34.2.0"
+"@ckeditor/ckeditor5-remove-format@^34.2.0":
+ version "34.2.0"
+ resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-remove-format/-/ckeditor5-remove-format-34.2.0.tgz#a61cb3ad3f5690deb87013f2f30a84347972b40d"
+ integrity sha512-3eYXu5SUusnoqllEJnXN2mvtJW26W73ntNxEj+5JTdZ5TxvZurqSUJM00GQuDXdoyZN52SOFz980rgbszegMEg==
+ dependencies:
+ ckeditor5 "^34.2.0"
+
"@ckeditor/ckeditor5-select-all@^34.2.0":
version "34.2.0"
resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-select-all/-/ckeditor5-select-all-34.2.0.tgz#49ca1e239dda9d6045716ebd6707a4cf1a8a6203"
@@ -1195,6 +1237,13 @@
dependencies:
lodash-es "^4.17.15"
+"@ckeditor/ckeditor5-watchdog@^34.2.0":
+ version "34.2.0"
+ resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-watchdog/-/ckeditor5-watchdog-34.2.0.tgz#f156c752ea8fc3107a1b94badc03376a22fdafb8"
+ integrity sha512-Sz4nOdhy8C7n4ffi/OkkRQQFfTZUKZjSzeDis1+ooxxgj/4/+X8pAZszaz+LtG7+lqUyc7YfTtitMUqXivHhfA==
+ dependencies:
+ lodash-es "^4.17.15"
+
"@ckeditor/ckeditor5-widget@^34.2.0":
version "34.2.0"
resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-widget/-/ckeditor5-widget-34.2.0.tgz#0df140bc4c40287251cf5f5a970f616bdbd470e3"
@@ -1208,6 +1257,14 @@
"@ckeditor/ckeditor5-utils" "^34.2.0"
lodash-es "^4.17.15"
+"@ckeditor/ckeditor5-word-count@^34.2.0":
+ version "34.2.0"
+ resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-word-count/-/ckeditor5-word-count-34.2.0.tgz#d350e68281a617dcce7ccb67f834499981c8da4c"
+ integrity sha512-24Fl/X9qQVDbHG4P+aSi4qcxpiyaA0e3hut3mp/c63WMdEu5FMY6IP1PwwNYBjOmQ7KtbDpQUFkYiv3lFOIcZg==
+ dependencies:
+ ckeditor5 "^34.2.0"
+ lodash-es "^4.17.15"
+
"@csstools/selector-specificity@^2.0.0":
version "2.0.2"
resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz#1bfafe4b7ed0f3e4105837e056e0a89b108ebe36"