Flatpages:如何在标记文件中添加(和显示)表情?

2024-06-17 09:09:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经建立了一个静态站点(Flask应用程序),其中包含Flatpages(Flask冻结)

现在我想在我的标记文本文件中添加表情符号。我该怎么做?这感觉应该很简单,但找不到答案

例如,我曾尝试bla bla bla :rocket: bla bla显示著名的火箭表情符号,但它显示的是文本:rocket:而不是表情符号

我在这里找到了大量的表情符号:https://gist.github.com/rxaviers/7360908


Tags: 答案https标记文本应用程序flatpagesflask站点
2条回答

表情符号与降价无关,据我所知,它们与烧瓶平板纸或冷冻烧瓶无关。要渲染它们,您需要做一些额外的工作

一个选项是安装类似^{}的东西,然后使用它,例如(自述文件中的示例):

>>> import emoji
>>> print(emoji.emojize('Python is :thumbs_up:'))
Python is 👍

我建议为您正在使用的任何模板语言编写(或查找)一个过滤器,以便您可以执行以下操作

{{ text | emojify }}

在另一个答案的帮助下,我完成了以下步骤并取得了成功:

app.py文件中,在创建了app之后,我添加了template_filter

app = Flask(__name__)
app.config.from_object(__name__)
pages = FlatPages(app)
freezer = Freezer(app) # Added

app.config['FREEZER_RELATIVE_URLS'] = True

# This part was added:
import emoji
@app.template_filter('emojify')
def emoji_filter(s):
    return emoji.emojize(s)

通过这样做,我现在有了一个|emojify供我使用,比如模板内部的|safe等等

现在在我的页面模板中,我添加了新创建的过滤器{{ page.html|emojify|safe }}。(顺序很重要;我首先将其放在末尾,然后您会看到原始html作为文本。)

一切正常!在我的一个降价文件中,我通过简单地写入:rocket:添加了一个火箭,它被正确地显示出来

有关创建自定义筛选器的详细信息,请参见此处:https://flask.palletsprojects.com/en/1.1.x/templating/#registering-filters

相关问题 更多 >