限制 Django 中的 Markdown

发布于 2024-11-29 14:18:26 字数 459 浏览 1 评论 0原文

我在使用 django 开发的博客中的评论系统上使用 markdown 我想限制可能的格式以仅接受基本格式(使用粗体、斜体、链接和代码

如何设置 Markdown 来执行此操作?

如果使用 markdown 不可能做到这一点,那么还有其他选择吗? PS:我正在使用默认的 django 应用程序“django.contrib.markup”,

这是我在模板上使用的实际代码:

          <div class="comment-content>
            <p>
             {% load markup %}
             {{ comment.comment|markdown:"safe" }}
            </p>
          </div>

I am using markdown on the comments system in my blog developed using django
I want to limit the possible format to accept just a basic one (with bold, italic, link and code)

How do I set Markdown to do this ?

if this is not possible using markdown so any alternatives ?
PS : i am using the default django app 'django.contrib.markup'

here is the actual code i am using on my template:

          <div class="comment-content>
            <p>
             {% load markup %}
             {{ comment.comment|markdown:"safe" }}
            </p>
          </div>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

空心空情空意 2024-12-06 14:18:26

这取决于您使用的 Markdown 插件,通过谷歌快速搜索可以找到很多插件。

您必须在线查找您正在使用的特定文档的文档,或者查看源代码,如果它是开源的,则需要时修改它。
或者只是找到另一个允许该功能的产品。

编辑:
似乎 django 使用 python-markdown(http://www.freewisdom.org/projects/python-markdown/),快速浏览一下它似乎不支持仅指定特定的格式选项。然而它似乎很容易扩展,所以如果你编写一个扩展,你可以在 django 中使用它,如下所示:

{{ string|markdown:"extension_name,extension2,etc..." }}

It would depend on which markdown plugin you're using there are many out there from a quick google search.

You'll have to either find documentation online for the specific one you are using, or perhaps look through the source and if it's open source modify it if you have to.
Or just find another one that allows that functionality.

edit:
Seems that django uses python-markdown(http://www.freewisdom.org/projects/python-markdown/), from a quick look it doesn't seem to support specifying only specific formatting options. However it seems to be easily extensible, so if you write an extension you can use it in django like this:

{{ string|markdown:"extension_name,extension2,etc..." }}
¢蛋碎的人ぎ生 2024-12-06 14:18:26

您可以使用 Bleach 并编写一个模板标签来删除您不需要的标签。

例如,仅允许粗体和斜体:

@register.filter
def limit_markdown(comment):
    comment = bleach.clean(comment, tags=['b', 'i', 'em'], strip=True)
    return comment

然后在模板中,您可以将其用作:

{{ comment.comment|markdown|limit_markdown|safe }}

You could use Bleach and write a template tag to strip out the tags you don't want.

For example, to allow only bold and italic:

@register.filter
def limit_markdown(comment):
    comment = bleach.clean(comment, tags=['b', 'i', 'em'], strip=True)
    return comment

Then in your template, you could use it as:

{{ comment.comment|markdown|limit_markdown|safe }}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文