亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

Django搭建個(gè)人博客:使用Markdown語(yǔ)法書(shū)寫(xiě)文章

沈建明 / 3490人閱讀

摘要:重新打開(kāi)一個(gè)命令行窗口,進(jìn)入虛擬環(huán)境,安裝是一種通用語(yǔ)法高亮顯示器,可以幫助我們自動(dòng)生成美化代碼塊的樣式文件。

上一章我們實(shí)現(xiàn)了文章詳情頁(yè)面。為了讓文章正文能夠進(jìn)行標(biāo)題、加粗、引用、代碼塊等不同的排版(像在Office中那樣?。?,我們將使用Markdown語(yǔ)法。

安裝Markdown

Markdown是一種輕量級(jí)的標(biāo)記語(yǔ)言,它允許人們“使用易讀易寫(xiě)的純文本格式編寫(xiě)文檔,然后轉(zhuǎn)換成有效的或者HTML文檔。建議讀者一定要花五分鐘時(shí)間熟悉一下Markdown的語(yǔ)法,熟練后碼字效率一定會(huì)大幅提高。

關(guān)于Markdown語(yǔ)法看這里:Markdown 語(yǔ)法介紹

安裝markdown也很簡(jiǎn)單:進(jìn)入虛擬環(huán)境,輸入指令pip install markdown即可。

使用Markdown

為了將Markdown語(yǔ)法書(shū)寫(xiě)的文章渲染為HTML文本,首先改寫(xiě)article/views.pyarticle_detail()

article/views.py

...

# 引入markdown模塊
import markdown

def article_detail(request, id):
    article = ArticlePost.objects.get(id=id)

    # 將markdown語(yǔ)法渲染成html樣式
    article.body = markdown.markdown(article.body,
        extensions=[
        # 包含 縮寫(xiě)、表格等常用擴(kuò)展
        "markdown.extensions.extra",
        # 語(yǔ)法高亮擴(kuò)展
        "markdown.extensions.codehilite",
        ])

    context = { "article": article }
    return render(request, "article/detail.html", context)

代碼中markdown.markdown語(yǔ)法接收兩個(gè)參數(shù):第一個(gè)參數(shù)是需要渲染的文章正文article.body;第二個(gè)參數(shù)載入了常用的語(yǔ)法擴(kuò)展,markdown.extensions.extra中包括了縮寫(xiě)、表格等擴(kuò)展,markdown.extensions.codehilite則是后面要使用的代碼高亮擴(kuò)展。

然后,修改templates/article/detail.html中有關(guān)文章正文的部分:

templates/article/detail.html

...

# 在 article.body 后加上 |safe 過(guò)濾器

{{ article.body|safe }}

Django出于安全的考慮,會(huì)將輸出的HTML代碼進(jìn)行轉(zhuǎn)義,這使得article.body中渲染的HTML文本無(wú)法正常顯示。管道符|是Django中過(guò)濾器的寫(xiě)法,而|safe就類(lèi)似給article.body貼了一個(gè)標(biāo)簽,表示這一段字符不需要進(jìn)行轉(zhuǎn)義了。

這樣就把Markdown語(yǔ)法配置好了。

啟動(dòng)服務(wù)器,在后臺(tái)中新錄入一條用markdown語(yǔ)法書(shū)寫(xiě)的文章,內(nèi)容如下:

# 國(guó)風(fēng)·周南·關(guān)雎
---
**關(guān)關(guān)雎鳩,在河之洲。窈窕淑女,君子好逑。**

參差荇菜,左右流之。窈窕淑女,寤寐求之。

---
+ 列表一
+ 列表二
    + 列表二-1
    + 列表二-2
---

?```python
def article_detail(request, id):
    article = ArticlePost.objects.get(id=id)
    # 將markdown語(yǔ)法渲染成html樣式
    article.body = markdown.markdown(article.body,
        extensions=[
        # 包含 縮寫(xiě)、表格等常用擴(kuò)展
        "markdown.extensions.extra",
        # 語(yǔ)法高亮擴(kuò)展
        "markdown.extensions.codehilite",
        ])
    context = { "article": article }
    return render(request, "article/detail.html", context)
?```

返回文章詳情,結(jié)果如下:

很好,但是代碼塊還是不怎么好看。

寫(xiě)技術(shù)文章沒(méi)有代碼高亮怎么行。繼續(xù)努力。

代碼高亮

static目錄中新建一個(gè)目錄md_css/,一會(huì)兒放置代碼高亮的樣式文件。

重新打開(kāi)一個(gè)命令行窗口,進(jìn)入虛擬環(huán)境,安裝Pygments:pip install Pygments

Pygments是一種通用語(yǔ)法高亮顯示器,可以幫助我們自動(dòng)生成美化代碼塊的樣式文件。

在命令行中進(jìn)入剛才新建的md_css目錄中,輸入Pygments指令:

pygmentize -S monokai -f html -a .codehilite > monokai.css

這里有一點(diǎn)需要注意, 生成命令中的 -a 參數(shù)需要與真實(shí)頁(yè)面中的 CSS Selector 相對(duì)應(yīng),即.codehilite這個(gè)字段在有些版本中應(yīng)寫(xiě)為.highlight。如果后面的代碼高亮無(wú)效,很可能是這里出了問(wèn)題。

回車(chē)后檢查一下,在md_css目錄中是否自動(dòng)生成了一個(gè)叫monokai.css的文件,這是一個(gè)深色背景的高亮樣式文件。

接下來(lái)我們?cè)?b>base.html中引用這個(gè)文件:

templates/base.html


    ...
    
    
    
    
    

...

重新啟動(dòng)服務(wù)器,順利的話(huà)看到如下:

除了Monokai這個(gè)深色的樣式外,Pygments還內(nèi)置了很多其他的樣式,這個(gè)就看喜好選擇了。

各種不同樣式可以在這里參照:pygments-css

總結(jié)

本章引進(jìn)了Markdown語(yǔ)法以及代碼高亮擴(kuò)展,從此可以寫(xiě)排版漂亮的文章正文了。

下一章將學(xué)習(xí)如何創(chuàng)建一篇新的文章。

有疑問(wèn)請(qǐng)?jiān)诙刨惖膫€(gè)人網(wǎng)站留言,我會(huì)盡快回復(fù)。

或Email私信我:dusaiphoto@foxmail.com

項(xiàng)目完整代碼:Django_blog_tutorial

轉(zhuǎn)載請(qǐng)告知作者并注明出處。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/42487.html

相關(guān)文章

  • Django搭建個(gè)人博客使用Form表單類(lèi)發(fā)表新文章

    摘要:一些表單界面元素文本框或復(fù)選框非常簡(jiǎn)單并內(nèi)置在中,而其他會(huì)復(fù)雜些像彈出日期選擇等操作控件。和標(biāo)簽中的屬性指定了當(dāng)前文本框提交的數(shù)據(jù)的名稱(chēng),它必須與表單類(lèi)中的字段名稱(chēng)對(duì)應(yīng),否則服務(wù)器無(wú)法將字段和數(shù)據(jù)正確的對(duì)應(yīng)起來(lái)。 前面我們已經(jīng)學(xué)會(huì)如何用Markdown語(yǔ)法書(shū)寫(xiě)文章了。 但是還有問(wèn)題呀。之前寫(xiě)文章都是在后臺(tái)中進(jìn)行的,萬(wàn)一有別的普通用戶(hù)也要發(fā)表文章怎么辦?萬(wàn)一我想拓展些后臺(tái)中沒(méi)有的提交驗(yàn)證...

    Java3y 評(píng)論0 收藏0
  • 使用 django-blog-zinnia 搭建個(gè)人博客

    摘要:語(yǔ)法支持再次打開(kāi)文件,在文件的最后添加指明了使用語(yǔ)法標(biāo)記,做了兩個(gè)拓展,其中表示支持語(yǔ)法高亮,包含的特性請(qǐng)參見(jiàn)相關(guān)文檔。語(yǔ)法高亮支持注意這一步必須在安裝完主題之后。 目前網(wǎng)上搭建個(gè)人博客的方案很多,雖然使用諸如 Wordpress ( PHP )、Hexo ( Node.js ) 等可以方便快速地搭建一款功能齊全的高性能個(gè)人博客,但是本文將嘗試一種更為小眾化的方案 —— 一款基于 dj...

    褰辯話(huà) 評(píng)論0 收藏0
  • Django搭建個(gè)人博客:渲染Markdown文章目錄

    摘要:博文也是同樣的,好的目錄對(duì)博主和讀者都很有幫助。文中的目錄之前我們已經(jīng)為博文支持了語(yǔ)法,現(xiàn)在繼續(xù)增強(qiáng)其功能。修改文章詳情視圖文章詳情目錄擴(kuò)展僅僅是將將擴(kuò)展添加了進(jìn)去。通過(guò)將目錄傳遞給模板。 對(duì)會(huì)讀書(shū)的人來(lái)說(shuō),讀一本書(shū)要做的第一件事,就是仔細(xì)閱讀這本書(shū)的目錄。閱讀目錄可以對(duì)整體內(nèi)容有所了解,并清楚地知道感興趣的部分在哪里,提高閱讀質(zhì)量。 博文也是同樣的,好的目錄對(duì)博主和讀者都很有幫助。更...

    Bamboy 評(píng)論0 收藏0
  • Django 博客開(kāi)發(fā)教程 9 - 支持 Markdown 語(yǔ)法和代碼高亮

    摘要:注意如果你按照教程中的方法做完后發(fā)現(xiàn)代碼依然沒(méi)有高亮,請(qǐng)依次檢查以下步驟確保在渲染文本時(shí)添加了拓展,詳情見(jiàn)上文。有些樣式文件可能對(duì)代碼高亮沒(méi)有作用,首先嘗試用樣式文件做測(cè)試。在支持語(yǔ)法和代碼高亮追夢(mèng)人物的博客的評(píng)論區(qū)留言。 為了讓博客文章具有良好的排版,顯示更加豐富的格式,我們使用 Markdown 語(yǔ)法來(lái)書(shū)寫(xiě)我們的博文。Markdown 是一種 HTML 文本標(biāo)記語(yǔ)言,只要遵循它約定...

    zr_hebo 評(píng)論0 收藏0
  • Django搭建個(gè)人博客使用django-ckeditor富文本編輯器

    摘要:后面兩個(gè)編輯器自帶,不用單獨(dú)下載,添上就可以了添加相關(guān)插件這樣就完成了代碼高亮效果不錯(cuò)在前臺(tái)使用為了讓用戶(hù)在前臺(tái)也能使用富文本編輯器,還得對(duì)代碼稍加改動(dòng)。對(duì)于有些不喜歡的人來(lái)說(shuō),甚至可以連博文都使用提供的富文本編輯器。 前面我們已經(jīng)實(shí)現(xiàn)了用Markdown語(yǔ)法寫(xiě)文章了。但是文章的評(píng)論用Markdown就不太合適了,你不能強(qiáng)求用戶(hù)也花時(shí)間去熟悉語(yǔ)法啊。另外評(píng)論中通常還有表情、帶顏色的字體...

    beanlam 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<