国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Django搭建個人博客:渲染Markdown文章目錄

Bamboy / 2016人閱讀

摘要:博文也是同樣的,好的目錄對博主和讀者都很有幫助。文中的目錄之前我們已經為博文支持了語法,現在繼續增強其功能。修改文章詳情視圖文章詳情目錄擴展僅僅是將將擴展添加了進去。通過將目錄傳遞給模板。

對會讀書的人來說,讀一本書要做的第一件事,就是仔細閱讀這本書的目錄。閱讀目錄可以對整體內容有所了解,并清楚地知道感興趣的部分在哪里,提高閱讀質量。

博文也是同樣的,好的目錄對博主和讀者都很有幫助。更進一步的是,還可以在目錄中設置錨點,點擊標題就立即前往該處,非常的方便。

文中的目錄

之前我們已經為博文支持了Markdown語法,現在繼續增強其功能。

有折騰代碼高亮的痛苦經歷之后,設置Markdown的目錄擴展就顯得特別輕松了。

修改文章詳情視圖:

article/views.py

...

# 文章詳情
def article_detail(request, id):
    ...
    article.body = markdown.markdown(article.body,
        extensions=[
        "markdown.extensions.extra",
        "markdown.extensions.codehilite",
            
        # 目錄擴展
        "markdown.extensions.TOC",
        ]
    )
    ...

僅僅是將將markdown.extensions.TOC擴展添加了進去。

TOC: Table of Contents,即目錄的意思

代碼增加這一行就足夠了。為了方便測試,往之前的文章中添加幾個一級標題、二級標題等。

還記得Markdown語法如何寫標題嗎?一級標題:# title1,二級標題:## title2

然后你可以在文中的任何地方插入[TOC]字符串,目錄就自動生成好了:

點擊標題,頁面就立即前往相應的標題處(即“錨點”的概念)。

任意位置的目錄

上面的方法只能將目錄插入到文章當中。如果我想把目錄插入到頁面的任何一個位置呢?

也簡單,這次需要修改Markdown的渲染方法:

article/views.py

...

def article_detail(request, id):
    ...

    # 修改 Markdown 語法渲染
    md = markdown.Markdown(
        extensions=[
        "markdown.extensions.extra",
        "markdown.extensions.codehilite",
        "markdown.extensions.toc",
        ]
    )
    article.body = md.convert(article.body)

    # 新增了md.toc對象
    context = { "article": article, "toc": md.toc }

    return render(request, "article/detail.html", context)

為了能將toc多帶帶提取出來,我們先將Markdown類賦值給一個臨時變量md,然后用convert()方法將正文渲染為html頁面。通過md.toc將目錄傳遞給模板。

注意markdown.markdown()markdown.Markdown()的區別

更詳細的解釋見:官方文檔

為了將新的目錄渲染到頁面中,需要修改文章詳情模板:

templates/article/detail.html

...

{{ article.title }}

...

目錄


{{ toc|safe }}
...

重新布局,將原有內容裝進col-9的容器中,將右側col-3的空間留給目錄

toc需要|safe標簽才能正確渲染

重新打開頁面:

總結

完成了文章的目錄功能,至此文章詳情頁面也比較完善了。

有疑問請在杜賽的個人網站留言,我會盡快回復。

或Email私信我:dusaiphoto@foxmail.com

項目完整代碼:Django_blog_tutorial

轉載請注明出處。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42913.html

相關文章

  • Django搭建個人博客:使用Markdown語法書寫文章

    摘要:重新打開一個命令行窗口,進入虛擬環境,安裝是一種通用語法高亮顯示器,可以幫助我們自動生成美化代碼塊的樣式文件。 上一章我們實現了文章詳情頁面。為了讓文章正文能夠進行標題、加粗、引用、代碼塊等不同的排版(像在Office中那樣!),我們將使用Markdown語法。 安裝Markdown Markdown是一種輕量級的標記語言,它允許人們使用易讀易寫的純文本格式編寫文檔,然后轉換成有效的或...

    沈建明 評論0 收藏0
  • Django搭建個人博客:使用django-ckeditor富文本編輯器

    摘要:后面兩個編輯器自帶,不用單獨下載,添上就可以了添加相關插件這樣就完成了代碼高亮效果不錯在前臺使用為了讓用戶在前臺也能使用富文本編輯器,還得對代碼稍加改動。對于有些不喜歡的人來說,甚至可以連博文都使用提供的富文本編輯器。 前面我們已經實現了用Markdown語法寫文章了。但是文章的評論用Markdown就不太合適了,你不能強求用戶也花時間去熟悉語法啊。另外評論中通常還有表情、帶顏色的字體...

    beanlam 評論0 收藏0
  • 使用 django-blog-zinnia 搭建個人博客

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

    褰辯話 評論0 收藏0
  • Django 學習小組:博客開發實戰第一周教程 —— 編寫博客的 Model 與主頁面

    摘要:學習小組是由我發起的一個促進新手互相學習互相幫助的組織。當然如果你不喜歡英文,可以看我們的中文翻譯版本入門教程中文翻譯版。如果模板文件中有如下代碼那么渲染時就會循環渲染篇文章,并且也會被存儲在數據庫中文章的標題取代。 本教程內容已過時,更新版教程請訪問: django 博客開發入門教程。 本節是 Django Blog 項目的開篇,是?Django 學習小組的集體學習成果。Django...

    陳江龍 評論0 收藏0
  • Django搭建個人博客:使用Form表單類發表新文章

    摘要:一些表單界面元素文本框或復選框非常簡單并內置在中,而其他會復雜些像彈出日期選擇等操作控件。和標簽中的屬性指定了當前文本框提交的數據的名稱,它必須與表單類中的字段名稱對應,否則服務器無法將字段和數據正確的對應起來。 前面我們已經學會如何用Markdown語法書寫文章了。 但是還有問題呀。之前寫文章都是在后臺中進行的,萬一有別的普通用戶也要發表文章怎么辦?萬一我想拓展些后臺中沒有的提交驗證...

    Java3y 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<