X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/dd7463259ad1f6384807616fe967e373003f3d69..refs/pull/3616/head:/resources/js/wysiwyg/config.js diff --git a/resources/js/wysiwyg/config.js b/resources/js/wysiwyg/config.js index c32a5ffc1..52c52592c 100644 --- a/resources/js/wysiwyg/config.js +++ b/resources/js/wysiwyg/config.js @@ -39,6 +39,35 @@ const formats = { calloutdanger: {block: 'p', exact: true, attributes: {class: 'callout danger'}} }; +const color_map = [ + '#BFEDD2', '', + '#FBEEB8', '', + '#F8CAC6', '', + '#ECCAFA', '', + '#C2E0F4', '', + + '#2DC26B', '', + '#F1C40F', '', + '#E03E2D', '', + '#B96AD9', '', + '#3598DB', '', + + '#169179', '', + '#E67E23', '', + '#BA372A', '', + '#843FA1', '', + '#236FA1', '', + + '#ECF0F1', '', + '#CED4D9', '', + '#95A5A6', '', + '#7E8C8D', '', + '#34495E', '', + + '#000000', '', + '#ffffff', '' +]; + function file_picker_callback(callback, value, meta) { // field_name, url, type, win @@ -62,14 +91,12 @@ function file_picker_callback(callback, value, meta) { /** * @param {WysiwygConfigOptions} options - * @return {string} + * @return {string[]} */ function gatherPlugins(options) { const plugins = [ "image", - "imagetools", "table", - "paste", "link", "autolink", "fullscreen", @@ -98,7 +125,7 @@ function gatherPlugins(options) { plugins.push('drawio'); } - return plugins.filter(plugin => Boolean(plugin)).join(' '); + return plugins.filter(plugin => Boolean(plugin)); } /** @@ -123,7 +150,7 @@ function setupBrFilter(editor) { editor.serializer.addNodeFilter('br', function(nodes) { for (const node of nodes) { if (node.parent && node.parent.name === 'code') { - const newline = new tinymce.html.Node.create('#text'); + const newline = tinymce.html.Node.create('#text'); newline.value = '\n'; node.replace(newline); } @@ -139,13 +166,13 @@ function getSetupCallback(options) { return function(editor) { editor.on('ExecCommand change input NodeChange ObjectResized', editorChange); listenForCommonEvents(editor); - registerShortcuts(editor); listenForDragAndPaste(editor, options); editor.on('init', () => { editorChange(); scrollToQueryString(editor); window.editor = editor; + registerShortcuts(editor); }); editor.on('PreInit', () => { @@ -215,7 +242,7 @@ export function build(options) { window.baseUrl('/dist/styles.css'), ], branding: false, - skin: options.darkMode ? 'oxide-dark' : 'oxide', + skin: options.darkMode ? 'tinymce-5-dark' : 'tinymce-5', body_class: 'page-content', browser_spellcheck: true, relative_urls: false, @@ -237,10 +264,9 @@ export function build(options) { "-doc-root[doc-root|#text]", "-li[details]", "+code-block[pre]", - "+doc-root[code-block]" + "+doc-root[p|h1|h2|h3|h4|h5|h6|blockquote|code-block|div]" ].join(','), plugins: gatherPlugins(options), - imagetools_toolbar: 'imageoptions', contextmenu: false, toolbar: getPrimaryToolbar(options), content_style: getContentStyle(options), @@ -249,7 +275,10 @@ export function build(options) { media_alt_source: false, media_poster: false, formats, + table_style_by_css: true, + table_use_colgroups: true, file_picker_types: 'file image', + color_map, file_picker_callback, paste_preprocess(plugin, args) { const content = args.content;