Project Information:

Project lead: Matthew Goodman

Project mentors: Christian Hammond, Mike Conley, David Trowbridge

Project Start Date: September 17th 2021

Project apart of the CANOSP 2021 Fall Cohort

The Project:

Review Board supports Emoji shortcodes, like :+1: in any text field. These are similar to what's allowed in Slack or Discord, but are limited to the standard Emoji set.

This project involves allowing custom Emoji to be added on a server. There are three parts:

  1. The Emoji registry. This would provide a mapping of custom Emoji shortcodes to Emoji information (title and image path). If given a LocalSite instance, it would access these Emoji from local_site.extra_data['custom_emoji']. Otherwise, it'll come from the SiteConfiguration's (global Review Board settings's) settings['custom_emoji']
  2. The Emoji configuration UI. This would live in the Admin UI as Emoji Settings. Administrators could define the new emoji here, storing it in the SiteConfiguration.
  3. Support for choosing the right emoji in Markdown. We use "pymdown-extensions" to provide Emoji shortcodes. You'd be defining new "Emoji Indexes" and "Emoji Generators" that piggy-back on default functionality, but also look up emoji shortcodes in the Emoji registry. See https://facelessuser.github.io/pymdown-extensions/extensions/emoji/#custom-emoji-indexes

Customer Benefit:

Tasks & Goals (in order):

  1. Create an Emoji registry
    1. Create wrapper for current Emoji extension where Custom Emoji's can be added in the future under a 'Custom' category
    2. This emoji registry will map shortcodes to Emoji information
  2. Create Emoji Picker UI popup where users can select emojis to add to a textbox (or reaction in the Emoji Reactions project) with emojis from registry. These can be organized into categories as defined in the emoji set.

Examples of Emojis that will be stored in the registry. The above

Examples of Emojis that will be stored in the registry. The above