diff options
author | Chris Xiong <chirs241097@gmail.com> | 2024-07-24 23:40:11 -0400 |
---|---|---|
committer | Chris Xiong <chirs241097@gmail.com> | 2024-07-24 23:40:11 -0400 |
commit | b736068ee7b82e05c2ede8bc48ace7ffa4709e29 (patch) | |
tree | eaa3cce9fdd9973043a7a55613584f90f6598a20 /utils/mistune_emote.py | |
download | notekins-b736068ee7b82e05c2ede8bc48ace7ffa4709e29.tar.xz |
Initial commit.
Diffstat (limited to 'utils/mistune_emote.py')
-rw-r--r-- | utils/mistune_emote.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/utils/mistune_emote.py b/utils/mistune_emote.py new file mode 100644 index 0000000..6c557a5 --- /dev/null +++ b/utils/mistune_emote.py @@ -0,0 +1,21 @@ +# Chris Xiong 2024 +# License: Expat (MIT) +from config import conf + +EMOTE_PATTERN = r":(?!\s)(?P<emote_name>.+?)(?!\s):" + +emote_root = f"{conf.SERVED_DATA_ROOT}/emotes" +emote_extension = ".webp" + +def parse_inline_emote(inline, m, state): + ename = m.group("emote_name") + state.append_token({"type": "inline_emote", "raw": ename}) + return m.end() + +def render_inline_emote(renderer, ename): + return f'<img class="emote" src="{emote_root}/{ename}{emote_extension}" alt="{ename}" title="{ename}">' + +def emote(md): + md.inline.register("inline_emote", EMOTE_PATTERN, parse_inline_emote, before="link") + if md.renderer and md.renderer.NAME == "html": + md.renderer.register("inline_emote", render_inline_emote) |