Skip to content

ProjectAtmos/markdown-it-emoji

This branch is 4 commits ahead of, 23 commits behind markdown-it/markdown-it-emoji:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8647b2b · Jun 17, 2020

History

60 Commits
Jun 20, 2017
Jun 17, 2020
Oct 4, 2016
Jul 20, 2017
Dec 21, 2014
Oct 1, 2016
Dec 21, 2014
Apr 27, 2019
Jun 20, 2017
Dec 21, 2014
Oct 1, 2016
Oct 31, 2016
Dec 24, 2014
May 27, 2016
May 27, 2016
Jun 17, 2020
Jun 17, 2020

Repository files navigation

markdown-it-emoji

Build Status NPM version Coverage Status

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 emojis.
  • Light, with only well-supported unicode emojis and reduced size.

Also supports emoticons shortcuts like :), :-(, and others. See the full list in the link above.

Install

node.js, browser:

npm install markdown-it-emoji --save
bower install markdown-it-emoji --save

Use

init

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 mandatory:

  • defs (Object) - rewrite available emoji definitions
    • example: { name1: char1, name2: char2, ... }
  • enabled (Array) - disable all emojis except whitelisted
  • shortcuts (Object) - rewrite default shortcuts
    • example: { "smile": [ ":)", ":-)" ], "laughing": ":D" }

Differences in browser. If you load the script directly into the page without using a package system, the module will add itself globally with the name markdownitEmoji. Init code will look a bit different in this case:

var md = window.markdownit().use(window.markdownitEmoji);

change output

By default, emojis are rendered as appropriate unicode chars. But you can change the renderer function as you wish.

Render as span blocks (for example, to use a 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! In case you need more options to change image size & type.

NB 2. When using twemoji you can make image height match the line height with this style:

.emoji {
  height: 1.2em;
}

License

MIT

About

Emoji syntax plugin for markdown-it markdown parser

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 87.2%
  • Makefile 12.8%