想法如下所示。我使用类似stackoverflow的标签向jinja2发送一些文本,如何告诉jinja2将它们视为包含文本的标记,并在html中生成粗体、斜体等文本?
谢谢。
发布于 2012-07-03 19:29:24
你应该能够做到这一点:
from docutils.core import publish_string
import jinja2
html = publish_string(source=text, writer_name='html')
node = jinja2.Markup(html)
其中node
是要实际包含在您的作用域中的Jinja 2节点。
发布于 2012-07-03 19:31:42
我习惯了django-markdown,所以我认为使用过滤器是实现这一点的一种很好的方法:
<div class="content">{{ article.body|rst }}</div>
除了it should be very easy to write之外,我不知道jinja2是否存在这样的过滤器。我猜这行(未测试的代码)中有一些东西:
from docutils.core import publish_parts
import jinja2
def rst_filter(s):
return jinja2.Markup(publish_parts(source=s, writer_name='html')['body'])
environment.filters['rst'] = rst_filter
https://stackoverflow.com/questions/11309885
复制相似问题