]> BookStack Code Mirror - bookstack/blobdiff - resources/js/wysiwyg/config.js
Added cache breaker to tinymce loading systems
[bookstack] / resources / js / wysiwyg / config.js
index 7fa3b0f26522abc2cbb43cbfc0b51775051f9175..25964514897c31ebd4a96385dea8adbe356c1a79 100644 (file)
@@ -210,16 +210,6 @@ body {
 }`.trim().replace('\n', '');
 }
 
-// Custom "Document Root" element, a custom element to identify/define
-// block that may act as another "editable body".
-// Using a custom node means we can identify and add/remove these as desired
-// without affecting user content.
-class DocRootElement extends HTMLDivElement {
-    constructor() {
-        super();
-    }
-}
-
 /**
  * @param {WysiwygConfigOptions} options
  * @return {Object}
@@ -230,14 +220,16 @@ export function build(options) {
     window.tinymce.addI18n(options.language, options.translationMap);
     // Build toolbar content
     const {toolbar, groupButtons: toolBarGroupButtons} = buildToolbar(options);
-    // Define our custom root node
-    customElements.define('doc-root', DocRootElement, {extends: 'div'});
+
+    // BookStack Version
+    const version = document.querySelector('script[src*="/dist/app.js"]').getAttribute('src').split('?version=')[1];
 
     // Return config object
     return {
         width: '100%',
         height: '100%',
         selector: '#html-editor',
+        cache_suffix: '?version=' + version,
         content_css: [
             window.baseUrl('/dist/styles.css'),
         ],
@@ -254,10 +246,17 @@ export function build(options) {
         statusbar: false,
         menubar: false,
         paste_data_images: false,
-        extended_valid_elements: 'pre[*],svg[*],div[drawio-diagram],details[*],summary[*],doc-root',
+        extended_valid_elements: 'pre[*],svg[*],div[drawio-diagram],details[*],summary[*],div[*]',
         automatic_uploads: false,
-        custom_elements: 'doc-root',
-        valid_children: "-div[p|h1|h2|h3|h4|h5|h6|blockquote|div],+div[pre],+div[img],+doc-root[p|h1|h2|h3|h4|h5|h6|blockquote|pre|img|ul|ol],-doc-root[doc-root|#text]",
+        custom_elements: 'doc-root,code-block',
+        valid_children: [
+            "-div[p|h1|h2|h3|h4|h5|h6|blockquote|code-block]",
+            "+div[pre|img]",
+            "-doc-root[doc-root|#text]",
+            "-li[details]",
+            "+code-block[pre]",
+            "+doc-root[code-block]"
+        ].join(','),
         plugins: gatherPlugins(options),
         imagetools_toolbar: 'imageoptions',
         contextmenu: false,