Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Emoji That Use Zero Width Joiner Sequences Render Incorrectly #176
Thank you for this awesome tool!
I have discovered what appears to be a bug somewhere in the decktape workflow that is causing incorrect rendering of emoji using ZWJ sequences.
In summary, decktape renders these characters fine:
This is because they are single unicode characters.
But decktape renders these characters incorrectly: 🧙♂️ 🧛♂️
This is because these individual emoji are rendered by joining one or more single unicode characters using a ZWJ.
I've created a demo slidedeck that can be used to verify/troubleshoot: https://duaneobrien.github.io/decktape-emoji-bug/
Sourcecode and the decktape output are in https://github.com/DuaneOBrien/decktape-emoji-bug
This may ultimately be a Puppeteer bug, but I don't see any issues in either repo (open or closed)
decktape version: 2.9.1 (fresh install today)
I've just tested with a newer version of Puppeteer (1.12.2) and that fixes the issue. That version comes with Chromium 73, as opposed to Chromium 71 for the current version used by Decktape.
I usually wait for the newer Chromium version to land in Alpine as it used in the Docker image. I did some quick tests and it seems Puppeteer is compatible with older Chromium version (i.e. 71), so if that's urgent for you, I could do the upgrade and that would fix the issue for the NPM install.
I realise another thing would be to add some Emoji font packages to the Docker image, like font-noto-emoji.