支援 Markdown 語法和程式碼高亮
阿新 • • 發佈:2019-01-04
本文是根據大牛部落格教程,自己的知識拾遺,記錄。
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' %}">