]> BookStack Code Mirror - bookstack/blobdiff - resources/js/wysiwyg/config.js
WYSIWYG: Altered how custom head added to editors
[bookstack] / resources / js / wysiwyg / config.js
index f669849ade879821160509ca4a0bbe374b5108b5..36d78b32515266c393d9c83ca157961161ac51fe 100644 (file)
@@ -85,7 +85,8 @@ function filePickerCallback(callback, value, meta) {
                 text: entity.name,
                 title: entity.name,
             });
-        }, selectionText, {
+        }, {
+            initialValue: selectionText,
             searchEndpoint: '/search/entity-selector',
             entityTypes: 'page,book,chapter,bookshelf',
             entityPermission: 'view',
@@ -142,16 +143,23 @@ function gatherPlugins(options) {
 }
 
 /**
- * Fetch custom HTML head content from the parent page head into the editor.
+ * Fetch custom HTML head content nodes from the outer page head
+ * and add them to the given editor document.
+ * @param {Document} editorDoc
  */
-function fetchCustomHeadContent() {
+function addCustomHeadContent(editorDoc) {
     const headContentLines = document.head.innerHTML.split('\n');
     const startLineIndex = headContentLines.findIndex(line => line.trim() === '<!-- Start: custom user content -->');
     const endLineIndex = headContentLines.findIndex(line => line.trim() === '<!-- End: custom user content -->');
     if (startLineIndex === -1 || endLineIndex === -1) {
-        return '';
+        return;
     }
-    return headContentLines.slice(startLineIndex + 1, endLineIndex).join('\n');
+
+    const customHeadHtml = headContentLines.slice(startLineIndex + 1, endLineIndex).join('\n');
+    const el = editorDoc.createElement('div');
+    el.innerHTML = customHeadHtml;
+
+    editorDoc.head.append(...el.children);
 }
 
 /**
@@ -283,8 +291,7 @@ export function buildForEditor(options) {
             }
         },
         init_instance_callback(editor) {
-            const head = editor.getDoc().querySelector('head');
-            head.innerHTML += fetchCustomHeadContent();
+            addCustomHeadContent(editor.getDoc());
         },
         setup(editor) {
             registerCustomIcons(editor);
@@ -331,15 +338,12 @@ export function buildForInput(options) {
         contextmenu: false,
         toolbar: 'bold italic link bullist numlist',
         content_style: getContentStyle(options),
-        color_map: colorMap,
         file_picker_types: 'file',
         file_picker_callback: filePickerCallback,
         init_instance_callback(editor) {
-            const head = editor.getDoc().querySelector('head');
-            head.innerHTML += fetchCustomHeadContent();
-        },
-        setup(editor) {
-            //
+            addCustomHeadContent(editor.getDoc());
+
+            editor.contentDocument.documentElement.classList.toggle('dark-mode', options.darkMode);
         },
     };
 }