Description
👉 Note: This is a post-v5 feature request (see Milestone)
Feature request
- Remove emoji short code support from Docsify core bundle
- Create a new emoji official plugin:
- Provide short code support (e.g.,
:+1:
= 👍) - Provides ability to render native emoji characters or GitHub-style emoji images
- Provide short code support (e.g.,
Proposal
Significantly reduce the file size of the core Docsify library by removing emoji short code support and instead offering it as an official plugin.
- Docsify with emoji short code support: 164KB (minified)
- Docsify without emoji short code support: 94KB (minified)
Removing short code support (/src/core/render/emoji-data.js
) provides a 53% reduction in the minified Docsify.js bundle size.
An official Docsify emoji plugin would provide both short code support (e.g., :+1:
= 👍) and the ability to render GitHub-style emoji images instead of OS-native emoji characters for those who want consistent emoji across all platforms (as Docsify v4 does today by default).
IMPORTANT: Removing short code support does not mean Docsify will be unable to render emoji without the plugin. This change only requires markdown authors to use their OS-native emoji picker to add emoji to their markdown documents instead of short codes. Those emoji will work as expected in Docsify, GitHub, and in other markdown applications, which arguably makes their markdown more portable since not all markdown environments support GitHub short codes.
For context...
Docsify's emoji short code support has been included in Docsify since v4 was released in 2017. This was a convenient way for those familiar with GitHub short codes to render emoji in their Docsify sites. More importantly, it was also the only way for Windows and Ubuntu users to easily add emoji to their Docsify and GitHub-flavored markdown because those operating systems lacked a native emoji picker:
- MacOS emoji picker: released ~2013
- Windows emoji picker: released ~2020
- Ubuntu emoji picker: released ~2018
Thankfully, all major operating systems now support native emoji pickers which are easily accessible via a keyboard shortcut:
These native emoji pickers reduce--but do not eliminate--the need for emoji short codes because users can now easily add native emoji characters to their markdown documents.