支持 markdown

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' %}">
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。