【问题标题】:Display text without markdown syntax in Django在 Django 中显示没有降价语法的文本
【发布时间】:2014-02-10 21:39:20
【问题描述】:

是否可以在没有降价语法的情况下使用 Django 只显示文本?

如果用户使用markdown 语法添加一些文本,并且我没有在我的模板中调用markdown ({{some_text}}),我会得到这样的结果:

**this is a test** _with markdown_ `syntax`

我想显示的是这样的纯文本:

this is a test with markdown syntax 

【问题讨论】:

    标签: python django markdown


    【解决方案1】:

    正如 Markdown 的 documentation 所说:

    Markdown 为以下字符提供反斜杠转义:

    \   backslash
    `   backtick
    *   asterisk
    _   underscore
    {}  curly braces
    []  square brackets
    ()  parentheses
    #   hash mark
    +   plus sign
    -   minus sign (hyphen)
    .   dot
    !   exclamation mark
    

    您可以编写一个模板标签来去除任何这些字符,只要它们前面没有反斜杠转义符(并且只在它们存在时去除反斜杠)。

    然而,Markdown 并不总是赋予这些字符特殊的含义。例如:

    这些(括号)被 Markdown 忽略。

    但是[这些](不是)因为它们是链接的一部分。

    换句话说,有时您可能想要删除上面的字符列表,但有时您可能不想。最后,您可能会发现自己重新实现了一个 markdown 解析器。不妨使用一个已经存在的,然后简单地通过 Django 的内置 striptags 过滤器传递 html。或者,如果您想维护块级标签并且只去除一小部分(内联)标签,removetags 过滤器可能会为您提供更好的服务。

    在任何一种情况下,您都不需要编写任何 Python 代码,因为您可以将几个现有的过滤器串在一起。

    {{ value|markdown|striptags }}
    

    【讨论】:

      【解决方案2】:

      创建模板过滤器以删除这些字符。例如,将 markdown 转换为 html,然后应用 striptags。

      【讨论】:

        猜你喜欢
        • 2014-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-24
        • 2021-11-14
        • 2021-04-03
        • 2021-09-26
        • 2015-03-07
        相关资源
        最近更新 更多