this.$textarea.val(this.wbbcode.convertToHtml(this.$textarea.val()));
this.code.offset = this.$textarea.val().length;
this.code.showVisual();
- this.wbbcode.fixCodeBBCode();
this.wbbcode.fixBlockLevelElements();
this.wutil.selectionEndOfEditor();
this.wbbcode.observeQuotes();
}
}
+ // remove <p> wrapping a quote or a div
+ data = data.replace(/<(?:div|p)><(blockquote|div)/g, '<$1');
+ data = data.replace(/<\/(blockquote|div)><\/(?:div|p)>/g, '</$1>');
+
// insert codes
if ($cachedCodes.length) {
for (var $i = $cachedCodes.length - 1; $i >= 0; $i--) {
}
}
- // remove <p> wrapping a quote or a div
- data = data.replace(/<(?:div|p)><(blockquote|div)/g, '<$1');
- data = data.replace(/<\/(blockquote|div)><\/(?:div|p)>/g, '</$1>');
-
WCF.System.Event.fireEvent('com.woltlab.wcf.redactor', 'afterConvertToHtml', { data: data });
return data;
// set caret after code listing
var $codeBox = this.$editor.find('.codeBox:not(.jsRedactorCodeBox)');
- this.wbbcode.fixCodeBBCode($codeBox[0]);
this.wbbcode.observeCodeListings();
this.wbbcode.fixBlockLevelElements();
}
},
- /**
- * Fixes the code bbcode.
- *
- * @param Element codeBox
- * @returns
- */
- fixCodeBBCode: function(codeBox) {
- if (!codeBox) {
- var $codeBoxes = this.$editor[0].querySelectorAll('div.codeBox');
- for (var $i = 0, $length = $codeBoxes.length; $i < $length; $i++) {
- this.wbbcode.fixCodeBBCode($codeBoxes[$i]);
- }
-
- return;
- }
-
- codeBox = codeBox[0] || codeBox;
-
- // sometimes the inner div is missing
- if (codeBox.children.length > 1) {
- var $container = document.createElement('div');
- codeBox.insertBefore($container, codeBox.firstChild);
-
- while ($container.nextElementSibling) {
- $container.appendChild($container.nextElementSibling);
- }
- }
- },
-
/**
* Ensures that there is a paragraph in front of each block-level element because you cannot click in between two of them.
*/