Python 3 實現 Markdown 解析器

項目簡介:我們將使用 Python 3 打造 Markdown 文本解析器,並且程序支持輸出 HTML 格式與 PDF 格式的文件。

本項目完整教程及在線練習地址:Python 3 實現 Markdown 解析器(更多項目請查看Python學習路徑)

一、課程介紹

1.1 知識點

通過本次課程的學習,我們將接觸到以下知識點:

  • 正則表達式
  • docopt 構建命令行解析器
  • 簡單的 HTML 語法

1.2 實驗流程

實驗的流程為:

  • 附加依賴安裝
  • 編程實現
  • 運行程序

1.3 實驗截圖

轉換效果如下:

二、附加依賴安裝

在安裝附加依賴軟體包之前,先更新已安裝的軟體包,避免在安裝的過程中出現問題。

$ sudo apt-get updaten

2.1 安裝 wkhtmltopdf

wkhtmltopdf 是一款能將 HTML 文件轉化為 PDF 文件的工具,支持 UNIX 平台與Windows 平台。

$ sudo apt-get install wkhtmltopdfn

更多參考:

  • wkhtmltopdf 官方網站

2.2 安裝 docopt

docopt 是 Python 的一個第三方參數解析庫,可以根據使用者提供的文檔描述自動生成解析器。因此使用者可以用它來定義參數與解析參數。

$ sudo pip3 install docoptn

更多參考:

  • docopt 官網

三、項目原理

先來考慮一下該程序需要實現哪些功能。

  1. 能夠解析命令行參數,根據參數進行相應的處理,比如將目標文件轉換為 HTML 文件或者轉換為 PDF 文件。
  2. 解析目標文件,輸出 HTML 文件。
  3. 根據需要將 HTML 文件轉化為 PDF 文件。

對於第一點我們可以使用 docopt 庫來構建命令行解析器,而第三點 HTML 轉換可以使用 wkhtmltopdf 工具來進行轉換。

至於第二點,Markdown 文本解析實際上就是文件翻譯工作,即將 Markdown 中規定的特殊字元根據語法規則轉換成相應的 HTML 標籤,從而實現解析工作。

四、實現步驟

本項目的詳細步驟可在實驗樓查看並在線完成:Python 3 實現 Markdown 解析器

主要實現步驟:

4.1 構建命令行解析器

4.2 Markdown 語法規則梳理

4.3 run 程序編寫

4.4 編寫 parse()

4.5 編寫 test_state()

4.6 幾個處理函數

4.7 編寫 link_image()

完整教程中有全部項目代碼:Python 3 實現 Markdown 解析器

Python學習路徑:Python研發工程師

更多經典的編程練手項目:全部 - 課程 - 實驗樓

微信關注公眾號[實驗樓],手機查看海量項目教程。


推薦閱讀:

量化策略系列教程:13布林強盜系統
Python 抽取word文檔中的文本。
黃哥Python轉載「Python』s super() considered super!」

TAG:Python | 编程 | Markdown |