X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/3bcbf6b9c55c9988b04835473053d514a1cb5df3..refs/pull/4955/head:/resources/js/wysiwyg/plugin-codeeditor.js diff --git a/resources/js/wysiwyg/plugin-codeeditor.js b/resources/js/wysiwyg/plugin-codeeditor.js index 25f774baa..f86760214 100644 --- a/resources/js/wysiwyg/plugin-codeeditor.js +++ b/resources/js/wysiwyg/plugin-codeeditor.js @@ -53,8 +53,8 @@ function defineCodeBlockCustomElement(editor) { super(); this.attachShadow({mode: 'open'}); - const stylesToCopy = document.querySelectorAll('link[rel="stylesheet"]:not([media="print"])'); - const copiedStyles = Array.from(stylesToCopy).map(styleEl => styleEl.cloneNode(false)); + const stylesToCopy = document.head.querySelectorAll('link[rel="stylesheet"]:not([media="print"]),style'); + const copiedStyles = Array.from(stylesToCopy).map(styleEl => styleEl.cloneNode(true)); const cmContainer = document.createElement('div'); cmContainer.style.pointerEvents = 'none'; @@ -205,6 +205,11 @@ function register(editor) { contenteditable: 'false', }); + const direction = el.attr('dir'); + if (direction) { + wrapper.attr('dir', direction); + } + const spans = el.getAll('span'); for (const span of spans) { span.unwrap(); @@ -222,6 +227,13 @@ function register(editor) { editor.serializer.addNodeFilter('code-block', elms => { for (const el of elms) { + const direction = el.attr('dir'); + if (direction && el.firstChild) { + el.firstChild.attr('dir', direction); + } else if (el.firstChild) { + el.firstChild.attr('dir', null); + } + el.unwrap(); } });