32 lines
1 KiB
Python
32 lines
1 KiB
Python
# -*- coding: utf-8 -*-
|
|
import emoji
|
|
|
|
from lektor.pluginsystem import Plugin
|
|
|
|
|
|
class EmojifyPlugin(Plugin):
|
|
name = u'lektor-emojify'
|
|
description = u'Add emoji to your pages'
|
|
|
|
def emojize(self, text):
|
|
return emoji.emojize(text, use_aliases=True)
|
|
|
|
def on_markdown_config(self, config, **extra):
|
|
class EmojizeMixin(object):
|
|
def link(ren, link, title, text):
|
|
text = self.emojize(text)
|
|
return super(EmojizeMixin, ren).link(link, title, text)
|
|
|
|
def table_cell(ren, content, **kwargs):
|
|
result = super(EmojizeMixin, ren).table_cell(content, **kwargs)
|
|
return self.emojize(result)
|
|
|
|
def list_item(ren, text):
|
|
result = super(EmojizeMixin, ren).list_item(text)
|
|
return self.emojize(result)
|
|
|
|
def paragraph(ren, text):
|
|
result = super(EmojizeMixin, ren).paragraph(text)
|
|
return self.emojize(result)
|
|
|
|
config.renderer_mixins.append(EmojizeMixin)
|