使用markdown及highlight
一、markdown
-
安装markdown2
pip install markdown2
-
应用markdown2
进入blog APP,创建templatetags文件夹,在文件夹内创建__init__.py,custom_markdown.py
-
修改custom_markdown.py
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 custom_markdown(value):
return mark_safe(markdown2.markdown(force_unicode(value),
extras=['code-friendly',
'fenced-code-blocks']
)) -
在模板中添加markdown:
{% extends "base.html" %}
{% block main%}
{{ post.content|custom_markdown }}
{% endblock %}
现在我们可以使用markdown的语法了,如果需要代码高亮,我们需要使用highlight.js
二、代码高亮
-
下载highlight.js
官网地址 https://highlightjs.org/ ,选择你需要的语言,下载即可。
-
使用highlight.js
现在浏览,代码可以高亮显示了。
三、后台添加markdown功能,可以用pagedown
-
安装pagedown
pip install django-pagedown
-
修改setting.py,添加应用
INSTALLED_APPS = (
...
'pagedown',
) -
设置form.py
from django import forms
from pagedown.widgets import AdminPagedownWidget
from models import Articleclass ArticleForm(forms.ModelForm):
content = forms.CharField(widget=AdminPagedownWidget(), required=False,
label='')class Meta:
model = Article
fields = 'all' -
设置admin.py
from django.contrib import admin
from blog.models import Article
from forms import ArticleFormclass ArticleAdmin(admin.ModelAdmin):
form = ArticleForm
admin.site.register(Article, ArticleAdmin)
此时,我们后台可以编写及预览markdown了
浙公网安备 33010602011771号