支持 markdown
2018-03-25 本文已影响2人
一块大番薯
app/views.py
import markdown
post.body = markdown.markdown(post.body, extensions=[
'markdown.extensions.toc',
'markdown.extensions.codehilite',
'markdown.extensions.extra',
])
- markdown 方法:将 Markdown 文本转换为 HTML
- extensions参数:对 Markdown 语法的拓展
- extra:本身包含很多拓展,代码显示(```)与此有关
- codehilite:语法高亮拓展
- toc: 允许自动生成目录
safe 过滤器
Django 的安全机制,HTML 代码在 Django 的模板中都会被转义。
(即显示原始的 HTML 代码,而不是经浏览器渲染后的格式)
解除转义,需在模板标签使用 safe 过滤器,表示文本是安全的。
即:{{ post.body|safe }
语法高亮
- 渲染文本时添加 markdown.extensions.codehilite 拓展
- pip install Pygments
- 引用样式:
<link rel="stylesheet" href="{% static 'app/css/highlights/github.css' %}">