NodeBB Plugin enabling emoji as seen on http://www.emoji-cheat-sheet.com
Find a file
Barış Soner Uşaklı b2f63e77bf 6.0.4
2025-06-09 17:21:38 -04:00
acp support for activitypub 2024-11-09 14:39:52 -07:00
lib feat: handle new 'markdown' post parse type 2025-01-23 15:04:40 -05:00
packs Merge branch 'master' into activitypub 2025-02-15 12:11:17 -05:00
public add zh-CN language 2025-06-10 01:34:49 +08:00
.eslintignore Add emoji packs to repository 2021-02-03 21:35:21 -07:00
.eslintrc.js support for activitypub 2024-11-09 14:39:52 -07:00
.gitignore Use a better search algorithm 2018-02-09 13:11:00 -07:00
.npmignore Add emoji packs to repository 2021-02-03 21:35:21 -07:00
LICENSE Init emoji v2 2017-09-06 16:57:34 -06:00
package.json 6.0.4 2025-06-09 17:21:38 -04:00
plugin.json fix mime import transpilation 2024-11-17 19:45:21 -07:00
prepare.sh welcome back prepare.sh 2025-06-09 17:21:29 -04:00
README.md update pack links in readme 2021-02-24 21:16:05 -07:00
tsconfig.json fix mime import transpilation 2024-11-17 19:45:21 -07:00

Emoji for NodeBB

Compatibility Downloads Dependency Status

Adds extensible emoji functionality to NodeBB

  • Multiple sets of emoji available for use
  • Intelligent auto-completion while composing posts and chat messages
  • Ability to convert common emoticons like :) to emoji
  • Convenient dialog to view and insert all available emoji
  • First-party support for custom emoji (available in the ACP)

Installation

For best results, install nodebb-plugin-emoji and emoji packs through the NodeBB Admin Panel.

Emoji packs

The following emoji packs are known to be compatible with nodebb-plugin-emoji

To add custom emoji, visit the Emoji ACP page and click on the pencil button in the bottom left.

Hook: filter:emoji.packs

In version two of the emoji plugin, a completely new API is now used to create emoji sets. Now, an emoji set defines its emojis via a hook that is emoitted by the emoji plugin when a build of emoji assets is run.

To use this, you must listen for the hook by adding it to plugin.json like so:

{
  "library": "emoji.js",
  "hooks": [
    { "hook": "filter:emoji.packs", "method": "defineEmoji" }
  ]
}

And then providing the defineEmoji function in your library file (emoji.js here):

exports.defineEmoji = function (data, callback) {
  data.packs.push({
    name: 'My Emoji Pack',
    id: 'my-emoji',
    attribution: '',
    path: __dirname,
    license: '',
    mode: 'images',
    images: {
      directory: 'emoji',
    },
    dictionary: {
      custom: {
        aliases: ['personalized'],
        image: 'custom.png',
        character: '',
      },
    },
  });

  callback(null, data);
};

In the above case, we define the emoji pack "My Emoji Pack" and one emoji: custom which has an alias of personalized, with an image named custom.png in the emoji directory. For full documentation, I suggest going to the interface definitions for Emoji and EmojiDefinition.

On an emoji build, initiated either on first install of the plugin or through the plugin ACP page, the emoji plugin will fire that hook and gather all emoji packs, then process them to produce metadata files it uses on the client side.

Manual installation

If nodebb-plugin-emoji is not available through the ACP, you can install it manually with NPM

npm install nodebb-plugin-emoji