blob: 6c557a572e9b1bbce2aac9d7cb3552929bf0ba8b (
plain) (
tree)
|
|
# 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)
|