1. 程式人生 > >支援 Markdown 語法和程式碼高亮

支援 Markdown 語法和程式碼高亮

本文是根據大牛部落格教程,自己的知識拾遺,記錄。

Markdown 使用方式,將需要渲染的文字交給markdown處理一下即可

Markdown 的簡單使用

pip install Markdown 

blog/views.py

import markdown
from django.shortcuts import render, get_object_or_404
from .models import Post

def detail(request, pk):
    post = get_object_or_404(Post, pk=pk)
    # 記得在頂部引入 markdown 模組
post.body = markdown.markdown(post.body, extensions=[ 'markdown.extensions.extra', 'markdown.extensions.codehilite', 'markdown.extensions.toc', ])
return render(request, 'blog/detail.html', context={'post': post})

safe標籤

我們在釋出的文章詳情頁沒有看到預期的效果,而是類似於一堆亂碼一樣的 HTML 標籤,這些標籤本應該在瀏覽器顯示它本身的格式,但是 Django 出於安全方面的考慮,任何的 HTML 程式碼在 Django 的模板中都會被轉義(即顯示原始的 HTML 程式碼,而不是經瀏覽器渲染後的格式)。為了解除轉義,只需在模板標籤使用 safe 過濾器即可,告訴 Django,這段文字是安全的,你什麼也不用做。在模板中找到展示部落格文章主體的 {{ post.body }} 部分,為其加上 safe 過濾器,{{ post.body|safe }},大功告成,這下看到預期效果了。


程式碼高亮

pip install Pygments

引入樣式 

<link rel="stylesheet" href="{% static 'blog/css/highlights/github.css' %}">