2 * Setup a serializer filter for <br> tags to ensure they're not rendered
3 * within code blocks and that we use newlines there instead.
4 * @param {Editor} editor
6 function setupBrFilter(editor) {
7 editor.serializer.addNodeFilter('br', nodes => {
8 for (const node of nodes) {
9 if (node.parent && node.parent.name === 'code') {
10 const newline = window.tinymce.html.Node.create('#text');
12 node.replace(newline);
19 * Remove accidentally added pointer elements that are within the content.
20 * These could have accidentally been added via getting caught in range
21 * selection within page content.
22 * @param {Editor} editor
24 function setupPointerFilter(editor) {
25 editor.parser.addNodeFilter('div', nodes => {
26 for (const node of nodes) {
27 if (node.attr('id') === 'pointer' || node.attr('class').includes('pointer')) {
35 * Setup global default filters for the given editor instance.
36 * @param {Editor} editor
38 export function setupFilters(editor) {
39 setupBrFilter(editor);
40 setupPointerFilter(editor);