Django 配置支援 Markdown 語法
阿新 • • 發佈:2019-01-06
Django 曾經支援 Markdown,但在 1.6 版本中去掉了。雖然有第三方開發的如 Django-Markdown 等外掛支援,但其實最簡單的辦法是自己直接做一個。同時也更便於測試、除錯。
目前 Python 的 Markdown 庫有兩個,
和 。其中 Markdown2 宣稱其效能要遠高於 Markdown。在網站應用中,效能是很重要的引數,經過實測,Markdown2 確實性能好於 Markdown。1. 建立一個新的 Template Tag
在 myproject/myapp 目錄下,建立子目錄 templagetags,內部新增如下兩個檔案:__init__.py, djangomarkdown.py
編輯 djangomarkdown.py
# -*- coding: utf-8 -*- import markdown2 from django import template from django.template.defaultfilters import stringfilter from django.utils.encoding import force_unicode from django.utils.safestring import mark_safe register = template.Library() @register.filter(is_safe=True) @stringfilter def djangomarkdown(value): return mark_safe(markdown2.markdown(force_unicode(value), extras=["code-friendly"] ) )
如此,一個新的 Templage Tag "djangomarkdown" 已被建立。
2. 在 Template 中使用
很簡單:
{% load djangomarkdown %}
{{ value|djangomarkdown }}
3. 參考文件
4. 版本
Python2.7, Django1.6