是否可以使用Django只显示文本而不使用标记语法?
如果用户添加了一些具有markdown语法的文本,如果我没有在模板({{some_text})中调用markdown,则会得到如下内容:
**this is a test** _with markdown_ `syntax`我想展示的是这样的纯文本:
this is a test with markdown syntax 发布于 2014-02-11 02:48:03
正如Markdown的文档所说:
Markdown为下列字符提供反斜杠转义: \反斜杠*反斜杠**星号_下划线{}花括号[]方括号()、括号#散列标记+加号-减号(连字符)。多点!感叹号
您可以编写一个模板标记,只要这些字符前面没有反斜杠转义(并且只有当反斜杠是反斜杠时),就可以删除这些字符中的任何一个。
然而,Markdown并不总是赋予这些字符特殊的含义。例如:
这些(括号)被Markdown忽略。 但是,这些是因为它们是链接的一部分。
换句话说,有时您可能想要删除上面的字符列表,但有时您可能不想。最后,您可能会发现自己重新实现了一个标记解析器。最好使用已经存在的html,然后简单地通过Django的内置条纹标签过滤器传递html。或者,如果您希望维护块级标记,并且只删除少量的(内联)标记,则边远地区筛选器可能会更好地为您服务。
在这两种情况下,您都不需要编写任何Python代码,因为您只需将一些现有的过滤器串在一起即可。
{{ value|markdown|striptags }}发布于 2014-02-10 22:42:41
创建一个模板过滤器来删除这些字符。例如,将标记转换为html,然后应用条带标记。
https://stackoverflow.com/questions/21688485
复制相似问题