Added wysiwyg filter to handle <br> tags within code blocks
This filters out <br> elements within code blocks and replaces them with newlines. The editor started using <br>'s more harshley after some configuration changes upon upgrading tinymce, in which we standardised on forced br tags to avoid empty elements. For #3327
This commit is contained in:
parent
d23b24b8db
commit
dd7463259a
1 changed files with 21 additions and 0 deletions
|
@ -114,6 +114,23 @@ function fetchCustomHeadContent() {
|
|||
return headContentLines.slice(startLineIndex + 1, endLineIndex).join('\n');
|
||||
}
|
||||
|
||||
/**
|
||||
* Setup a serializer filter for <br> tags to ensure they're not rendered
|
||||
* within code blocks and that we use newlines there instead.
|
||||
* @param {Editor} editor
|
||||
*/
|
||||
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');
|
||||
newline.value = '\n';
|
||||
node.replace(newline);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {WysiwygConfigOptions} options
|
||||
* @return {function(Editor)}
|
||||
|
@ -131,6 +148,10 @@ function getSetupCallback(options) {
|
|||
window.editor = editor;
|
||||
});
|
||||
|
||||
editor.on('PreInit', () => {
|
||||
setupBrFilter(editor);
|
||||
});
|
||||
|
||||
function editorChange() {
|
||||
const content = editor.getContent();
|
||||
if (options.darkMode) {
|
||||
|
|
Loading…
Reference in a new issue