❶ 10. 支持 markdown 語法和代碼高亮
【教程已更新,詳情請參閱:Django 博客開發入門教程】
為了提升博客文章的美觀性和可讀性,我們引入Markdown語法,它是一種簡潔易懂的文本標記語言,能將文本轉換為包含標題、列表、代碼塊等元素的HTML文檔。Markdown因其易上手特性,深受用戶喜愛。讓我們在博客中啟用Markdown支持。
Markdown文本到HTML的轉換通常由第三方庫處理,如Python的markdown庫。首先,確保在虛擬環境中安裝:`pip install markdown`。在後端視圖函數中,獲取post的body內容後,使用markdown庫的函數進行渲染,傳遞`extensions`參數,如`extra`、`codehilite`和`toc`,以實現更多功能,如代碼高亮和自動生成目錄。
發布一篇Markdown格式的文章,如測試用例,通過Markdown教程學習基本語法。例如,參考這些資源:
然而,由於安全考慮,Django會默認轉義HTML代碼。在模板中,為`{{ post.body }}`加上`safe`過濾器,解除轉義,才能看到預期的格式。
代碼高亮是Markdown的擴展功能,雖已啟用`codehilite`,但還需進一步操作。安裝Pygments庫:`pip install Pygments`。Pygments會自動為代碼添加樣式,只需在base.html中引入自定義的樣式文件,比如``,就能實現代碼高亮顯示。
現在,你的博客支持Markdown語法,代碼高亮效果已實現,可以方便地插入和閱讀代碼了。