爲項目添加markdown效果
在django搭建個人博客中,如果想文章按照markdown的規則顯示,可以對項目添加以下代碼:
一. 爲文章後臺編輯添加markdown效果:
- 安裝mdeditor
pip3 install mdeditor
; - 在需要的模型的字段使用
from mdeditor.fields import MDTextField
content = MDTextField(verbose_name='文章內容');
- 在項目
urls.py
文件爲mdeditor添加路由
urlpatterns = [
path('mdeditor/', include('mdeditor.urls')), # mdeditor路由
]
設置完畢後,該字段在後臺的編輯畫面就變成了markdown樣式的了:
但是在實際瀏覽器中顯示時,代碼部分還是黑白的:
所以還要對代碼字段進行處理。
二、安裝markdown對代碼文段進行分詞處理
- 安裝markdown
pip3 install markdown
; - 在視圖裏對含有代碼的字段進行處理(只要將需要處理的字段放進下面的函數中,就可以自動對代碼進行分詞):
from markdown import markdown
def markdown_deal(message):
# message是需要處理的字段
message = markdown(message,
extensions=[
# 包含縮寫、表格等常用擴展
'markdown.extensions.extra',
# 語法高亮擴展
'markdown.extensions.codehilite',
# 允許我們自動生成目錄
'markdown.extensions.toc',
])
return message
- 安裝Pygments
pip3 install Pygment
,該模塊可以生成針對markdown格式的代碼的css文件。安裝完成後跳轉到項目的css文件下,執行pygmentize -f html -a .highlight -S default > highlight.css
:
-- a .highlight 指所有css選擇器都具有.highlight這一祖先選擇器
-- S default 指定所需要的樣式(後面將展出所有內置樣式)
-- pygments.css 將內容寫出到pygments.css文件中
- 然後在對應的模板文件中引入該css文件:
<link rel="stylesheet" href="{% static 'md_css/manni.css' %}">
到此爲之網頁應該就可以顯示高亮的代碼了:
三、最後列出Pygments內置的樣式截圖:
-
pygmentize -f html -a .highlight -S
emacs
> highlight.css
-
friendly
-
colorful
-
autumn
-
murphy
-
manni
-
monokai
-
perldoc
-
pastie
-
borland
-
trac
-
native
-
fruity
-
bw
-
vim
-
vs
-
tango
-
rrt
-
xcode
-
igor
-
paraiso-light
-
paraiso-dark
-
lovelace
-
algol
-
algol_nu
-
arduino
-
rainbow_dash
-
abap