implement unicode emoji replacements

This commit is contained in:
Sam
2017-06-28 13:47:22 -04:00
parent 97b6d8664b
commit cfbda863e8
5 changed files with 42 additions and 11 deletions

View File

@@ -3,7 +3,28 @@ __buildOptions = require('pretty-text/pretty-text').buildOptions;
__performEmojiUnescape = require('pretty-text/emoji').performEmojiUnescape;
__utils = require('discourse/lib/utilities');
__setUnicode = require('pretty-text/engines/discourse-markdown/emoji').setUnicodeReplacements;
__emojiUnicodeReplacer = null;
__setUnicode = function(replacements) {
require('pretty-text/engines/discourse-markdown/emoji').setUnicodeReplacements(replacements);
let unicodeRegexp = new RegExp(Object.keys(replacements).sort().reverse().join("|"), "g");
__emojiUnicodeReplacer = function(text) {
unicodeRegexp.lastIndex = 0;
let m;
while ((m = unicodeRegexp.exec(text)) !== null) {
let replacement = ":" + replacements[m[0]] + ":";
const before = text.charAt(m.index-1);
if (!/\B/.test(before)) {
replacement = "\u200b" + replacement;
}
text = text.replace(m[0], replacement);
}
return text;
};
};
__paths = {};