jpanther / congo

A powerful, lightweight theme for Hugo built with Tailwind CSS.
https://jpanther.github.io/congo/
MIT License
1.24k stars 330 forks source link

Emoji are rendered inside Markdown code blocks #876

Open zoriya opened 6 months ago

zoriya commented 6 months ago

Issue description

Using code blog inside markdown content files do not escape emoji conversion.

For example: ffmpeg -map 0:a:0 converts :a: to :a:

This is because hugo's emojify transform does not know about markdown code blogs, it was fixed on hugo's side by disabling their internal emojify transform and using the markdown's renderer one (see https://github.com/gohugoio/hugo/issues/4978 for more info).

Please note that disabling hugo's emojify is not possible (to my knowledge) since congo hardcodes | emojify calls everywhere. This means the config option enableEmoji = false does nothing.

Theme version

v2.8.2

Hugo version

hugo v0.124.1+extended linux/amd64 BuildDate=unknown VendorInfo=nixpkgs

Which browser rendering engines are you seeing the problem on?

Chromium (Google Chrome, Microsoft Edge, Brave, Vivaldi, Opera, etc.), Firefox (Mozilla Firefox), WebKit (Safari)

URL to sample repository or website

No response

Hugo output or build error messages

No response

jpanther commented 2 months ago

I don't believe this is an issue with Congo as this is the expected behaviour of Hugo's markdown parser. Have you tried this Hugo configuration?

enableEmoji = false

[markup.goldmark.extensions]
emoji = true
zoriya commented 2 months ago

Yes I did. The issue comes from the | emojify inside Congo's source code. Those pipes don't read the configuration and use the builtin emoji parser that doesn't understand emoji.

The fix is to remove the emojify pipe everywhere markdown content is expected and let glowfish handle emoji for us.