使用markdown及highlight

一、markdown

  1. 安装markdown2

    pip install markdown2

  2. 应用markdown2

    进入blog APP,创建templatetags文件夹,在文件夹内创建__init__.py,custom_markdown.py

  3. 修改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']
    ))

  4. 在模板中添加markdown:

    {% extends "base.html" %}

    {% block main%}


    {{ post.content|custom_markdown }}


    {% endblock %}
    现在我们可以使用markdown的语法了,如果需要代码高亮,我们需要使用highlight.js

二、代码高亮

  1. 下载highlight.js

    官网地址 https://highlightjs.org/ ,选择你需要的语言,下载即可。

  2. 使用highlight.js




    现在浏览,代码可以高亮显示了。

三、后台添加markdown功能,可以用pagedown

  1. 安装pagedown

    pip install django-pagedown

  2. 修改setting.py,添加应用

    INSTALLED_APPS = (
    ...
    'pagedown',
    )

  3. 设置form.py

    from django import forms
    from pagedown.widgets import AdminPagedownWidget
    from models import Article

    class ArticleForm(forms.ModelForm):
    content = forms.CharField(widget=AdminPagedownWidget(), required=False,
    label='')

    class Meta:
    model = Article
    fields = 'all'

  4. 设置admin.py

    from django.contrib import admin
    from blog.models import Article
    from forms import ArticleForm

    class ArticleAdmin(admin.ModelAdmin):
    form = ArticleForm
    admin.site.register(Article, ArticleAdmin)

此时,我们后台可以编写及预览markdown了

posted on 2016-03-26 15:59  神秘代码  阅读(3562)  评论(0)    收藏  举报

导航