NodeBB Plugin enabling emoji as seen on http://www.emoji-cheat-sheet.com
Find a file
Barış Soner Uşaklı 89b47f6c12 5.2.1
2023-09-19 13:59:17 -04:00
acp bump dependencies 2023-07-04 21:58:13 -06:00
lib fix: add checks 2023-09-17 09:04:35 -04:00
packs chore: up pack versions 2022-09-21 10:26:46 -04:00
public fix for skins 2023-09-19 13:57:27 -04:00
.eslintignore Add emoji packs to repository 2021-02-03 21:35:21 -07:00
.eslintrc.js bump dependencies 2023-07-04 21:58:13 -06: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 5.2.1 2023-09-19 13:59:17 -04:00
plugin.json add button into chat composer 2023-09-16 20:44:03 -04:00
prepare.sh test: bash script 2022-02-03 16:40:14 -05:00
README.md update pack links in readme 2021-02-24 21:16:05 -07:00
tsconfig.json fix type check errors, bump deps 2021-03-15 21:36:58 -06: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