This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/lib/censored-words.js
Mark Wingerd e4074f75b1 Stop URLs from being censored (#4288)
URLs that contained a censored word were being altered by
censored-words.js and ulimately this broke the links. As an example
www.expertsexchange.com would get censored when it would link to a
legitimate website.  This URL blocking functionality should be
handled through other settings.
2016-06-29 10:41:54 -04:00

26 lines
832 B
JavaScript

Discourse.CensoredWords = {
censor: function(text) {
var censorRegexp,
censored = Discourse.SiteSettings.censored_words;
if (censored && censored.length) {
if (!censorRegexp) {
var split = censored.split("|");
if (split && split.length) {
censorRegexp = new RegExp("(\\b(?:" + split.map(function (t) { return "(" + t.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&') + ")"; }).join("|") + ")\\b)(?![^\\(]*\\))", "ig");
}
}
if (censorRegexp) {
var m = censorRegexp.exec(text);
while (m && m[0]) {
var replacement = new Array(m[0].length+1).join('■');
text = text.replace(new RegExp("(\\b" + m[0] + "\\b)(?![^\\(]*\\))", "ig"), replacement);
m = censorRegexp.exec(text);
}
}
}
return text;
}
};