当梦想照进现实

Django1.6的markdown利器:django-markdown-deux

2014.05.14

长颈鹿的进化

背景

不得不说,markdown是写(zhuang)作(bi)利器,在用django时我就将其认定为必备功能之一。对于markdown的支持,Django本来有集成的markdown功能,在django.contrib.markup中,但自1.6以来,这个库整个就被砍掉了,只能用第三方来实现。
我摸索了将近一个小时,终于找到了一种傻瓜操作,功能齐全的库,那就是django-markdown-deux

三步实现法

第一步 安装

使用pip简单粗暴来安装:
pip install django-markdown-deux
如果不是管理员权限,要用加上sudo,因为有创建文件夹,语法如下:
sudo pip install django-markdown-deux

第二步 应用设置

将'markdown_deux'添加进INSTALLED_APPS列表:

INSTALLED_APPS = (
    ...
    'markdown_deux',
    ...
)

第三步 模版设置

在模版中需要2段代码:

  • 模版头部载入模块{% load markdown_deux_tags %}
  • 内容调用部分加入过滤器markdown

示例代码:

{% load markdown_deux_tags %}

{% extends 'base.html' %}
{% block content %}
    <div class="main_body">
        <h1>{{ post.title }}</h1>
        {{ post.content|markdown }}
    </div>
{% endblock %}

注意:这里需要注意的是,并不是说在*base模版*中加入{% load markdown_deux_tags %},其他模版都不需要调用了(我之前就搞错了)。而是只需要在使用markdown过滤器的模版中加入{% load markdown_deux_tags %}即可,比如我一个项目中的post.htmlposts_list.html

大功告成

完成以上三步就大功告成了,你可以在后台输入框中输入markdown语法,在前台就能看到已经转化过的内容。
如后台输入:

#测试篇
##头号大将 - 瑟卡
**标志**:黑桃
**猜测对手**:萨博或zero

在前台渲染成的HTML代码如下:

<h1>测试篇</h1>
<h2>头号大将 - 瑟卡</h2>
<b>标志</b>:黑桃
<b>猜测对手</b>:萨博或zero

参考资料

StackOverFlow的How do I implement markdown in Django 1.6 app
django-markdown-deux的github官方文档
Wow!Ubuntu的Markdown语法指南

备注

  1. 题图来自Quora;
  2. 最近开始学Django了,目前刚走出官方教程,尚不明确最终目标,也没确定是否转向django开发,暂时想做点个人站。
Comments
Write a Comment