emoji.js 735 B

123456789101112131415161718192021222324252627
  1. import emojiStrategy from '../emojione/emoji_strategy_shrinked.json';
  2. export default class EmojiConfigurer {
  3. constructor(crowi) {
  4. this.crowi = crowi;
  5. }
  6. configure(md) {
  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. }