Emojis
GitLab supports native Emojis through the tanuki_emoji
gem.
How to update Emojis
- Update the
tanuki_emoji
gem. - Update
EMOJI_VERSION
inlib/gitlab/emoji.rb
- Update
EMOJI_VERSION
inapp/assets/javascripts/emoji/index.js
- Use the
tanuki_emoji
gem’s Rake tasks to update aliases, fallback images, digests, and sprites. Run in the following order:-
bundle exec rake tanuki_emoji:aliases
- updatesfixtures/emojis/aliases.json
-
bundle exec rake tanuki_emoji:import
- imports all the images intopublic/-/emojis
directory -
bundle exec rake tanuki_emoji:digests
- updatespublic/-/emojis/VERSION/emojis.json
andfixtures/emojis/digests.json
-
bundle exec rake tanuki_emoji:sprite
- creates new sprite sheetsIf new emoji are added, the sprite sheet may change size. To compensate for such changes, first generate the
app/assets/images/emoji.png
sprite sheet with the above Rake task, then check the dimensions of the new sprite sheet and update theSPRITESHEET_WIDTH
andSPRITESHEET_HEIGHT
constants inlib/tasks/tanuki_emoji.rake
accordingly. Then re-run the task.- Use ImageOptim or similar program to optimize the images for size
-
- Ensure new sprite sheets were generated for 1x and 2x
app/assets/images/emoji.png
app/assets/images/emoji@2x.png
- Update
fixtures/emojis/intents.json
with any new emoji that we would like to highlight as having positive or negative intent.- Positive intent should be set to
0.5
. - Neutral intent can be set to
1
. This is applied to all emoji automatically so there is no need to set this explicitly. - Negative intent should be set to
1.5
.
- Positive intent should be set to
- Ensure you see new individual images copied into
app/assets/images/emoji/
- Ensure you can see the new emojis and their aliases in the GitLab Flavored Markdown (GLFM) Autocomplete
- Ensure you can see the new emojis and their aliases in the emoji reactions menu
- You might need to add new emoji Unicode support checks and rules for platforms
that do not support a certain emoji and we need to fallback to an image.
See
app/assets/javascripts/emoji/support/is_emoji_unicode_supported.js
andapp/assets/javascripts/emoji/support/unicode_support_map.js
- if a new version of Unicode emojis is being added, update the list in
app/assets/javascripts/emoji/support/unicode_support_map.js
- if a new version of Unicode emojis is being added, update the list in
- Ensure you use the version of emoji-regex that corresponds
to the version of Unicode that is being supported. This should be updated in
package.json
. Used for filtering emojis inapp/assets/javascripts/emoji/index.js
. - Have there been any changes to the category names? If so then
app/assets/javascripts/emoji/constants.js
will need to be updated - See an example MR