emoji.js 721 B

123456789101112131415161718192021222324252627
  1. export default class EmojiConfigurer {
  2. constructor(crowi) {
  3. this.crowi = crowi;
  4. }
  5. configure(md) {
  6. const emojiStrategy = this.crowi.getEmojiStrategy();
  7. const emojiShortnameUnicodeMap = {};
  8. for (let unicode in emojiStrategy) {
  9. const data = emojiStrategy[unicode];
  10. const shortname = data.shortname.replace(/:/g, '');
  11. emojiShortnameUnicodeMap[shortname] = String.fromCharCode(unicode);
  12. }
  13. md.use(require('markdown-it-emoji'), {defs: emojiShortnameUnicodeMap});
  14. // integrate markdown-it-emoji and emojione
  15. md.renderer.rules.emoji = (token, idx) => {
  16. const shortname = `:${token[idx].markup}:`;
  17. return emojione.shortnameToImage(shortname);
  18. };
  19. }
  20. }