Plugin for markdown-it markdown parser, adding emoji & emoticon syntax support.
v1.+ requires markdown-it
v4.+, see changelog.
Two versions:
- Full (default), with all github supported emojies.
- Light, with only well supported unicode emojies and reduced size.
Also supports emoticons shortcuts like :)
, :-(
, and other. See full list an link above.
node.js, browser:
npm install markdown-it-emoji --save
bower install markdown-it-emoji --save
var md = require('markdown-it')();
var emoji = require('markdown-it-emoji');
// Or for light version
// var emoji = require('markdown-it-emoji/light');
md.use(emoji [, options]);
Options are not mantatory:
- defs (Object) - rewrite available emojies definitions
- example:
{ name1: char1, name2: char2, ... }
- example:
- enabled (Array) - disable all emojies except whitelisted
- shortcuts (Object) - rewrite default shortcuts
- example:
{ "smile": [ ":)", ":-)" ], "laughing": ":D" }
- example:
Differences in browser. If you load script directly into the page, without
package system, module will add itself globally with name markdownitEmoji
.
Then init will look a bit different:
var md = window.markdownit().use(window.markdownitEmoji);
By default, emojies are rendered as appropriate unicode chars. But you can change renderer function as you wish.
Render as span blocks (for example, to use custom iconic font):
// ...
// initialize
md.renderer.rules.emoji = function(token, idx) {
return '<span class="emoji emoji_' + token[idx].markup + '"></span>';
};
Or use twemoji:
// ...
// initialize
var twemoji = require('twemoji')
md.renderer.rules.emoji = function(token, idx) {
return twemoji.parse(token[idx].content);
};
NB 1. Read twemoji docs! May be you need more options to change image size & type.
NB 2. For twemoji you can like to fit image height to line height with this style:
.emoji {
height: 1.2em;
}