// remove data-redactor-tag="" attribute
html = html.replace(/(<[^>]+?) data-redactor-tag="[^"]+"/g, '$1');
+ // remove zero-width space sometimes slipping through
+ html = html.replace(/​/g, '');
+
// revert conversion of special characters
html = html.replace(/™/gi, '\u2122');
html = html.replace(/©/gi, '\u00a9');
}
}
- // insert codes
- if ($.getLength($cachedCodes)) {
- for (var $key in $cachedCodes) {
- var $regex = new RegExp('@@' + $key + '@@', 'g');
- data = data.replace($regex, $cachedCodes[$key]);
- }
-
- // [tt]
- data = data.replace(/\[tt\](.*?)\[\/tt\]/gi, '<span class="inlineCode">$1</span>');
- }
-
- // preserve leading whitespaces in [code] tags
- data = data.replace(/\[code\][\S\s]*?\[\/code\]/, '<pre>$&</pre>');
-
// insert quotes
if ($cachedQuotes.length) {
// [quote]
}
}
+ // insert codes
+ if ($.getLength($cachedCodes)) {
+ for (var $key in $cachedCodes) {
+ var $regex = new RegExp('@@' + $key + '@@', 'g');
+ data = data.replace($regex, $cachedCodes[$key]);
+ }
+
+ // [tt]
+ data = data.replace(/\[tt\](.*?)\[\/tt\]/gi, '<span class="inlineCode">$1</span>');
+ }
+
+ // preserve leading whitespaces in [code] tags
+ data = data.replace(/\[code\][\S\s]*?\[\/code\]/, '<pre>$&</pre>');
+
WCF.System.Event.fireEvent('com.woltlab.wcf.redactor', 'afterConvertToHtml', { data: data });
return data;