使用Sphinx為你的python模塊自動生成文檔


 

Sphinx是一個可以用於Python的自動文檔生成工具,可以自動的把docstring轉換為文檔,並支持多種輸出格式包括html,latex,pdf等。

安裝

創建一個sphinx項目

下面的命令會自動生成一個默認的Sphinx模板

執行期間,它會一步步的詢問對模板的設置,除了一些必須填寫的選項,大部分填寫默認值就行了,你會遇到這樣一條叫autodoc的,需要選擇yes

然后默認的目錄就生成了,大概是這個樣子

現在執行如下指令,就會生成一份空文檔,存放在/build/html里,點擊index.html就可以打開一個空的網頁,雖然沒有內容,但是整體的結構還是在的

source/ 目錄

source/目錄里有兩個文件,分別是conf.pyindex.rst,下面對它們進行進一步的介紹

index.rst

.rst是reStructuredText,和Markdown一樣是一種標記語言,具體的語法可以看這里 reStructuredText Primer。 
實際上,我們在使用Sphinx的過程中最主要就是對這些rst文件進行修改,而Sphinx所做的事情就是讀取這些rst文件,並轉換為特定格式的文檔,在前面的步驟中,index.rst實際上被轉換為build/html/index.html,而實際上在rst文檔內你可以寫任何東西,最后這些都會被轉換到輸出文檔中。

打開index.rst,可以看到這樣的內容,這是rst的一個語法,它使用了一個toctree節點,並設置了一些參數,而這個toctree節點是必須的。

conf.py

這是運行sphinx生成文檔時會加載的配置,你可以通過對它進行修改來改變生成文檔的行為。

一個具體的例子

假設現在我們有一個叫run.py的文件,如下

那么需要如何生成文檔呢?下面一步步帶你完成 
- 創建一個文件夾demo/,並將run.py放到里面 
- 在demo里創建一個docs目錄,進入docs/目錄,當然這里你可以隨意選定文件夾,只是這樣更規范一些 
- 生成Sphinx默認模板,設置項目名為demo,並開啟autodoc 
運行sphinx-quickstart 
- 進入source目錄,打開index.rst 
- 將index.rst 修改為如下,實際上這里面可以寫任何滿足rst規范的內容

這個是用於自動從模塊讀取docstring的語句,可以自動從run模塊讀取文檔

  • 但是現在還差一步,如果你現在直接生成文檔,會告訴你找不到run模塊,因為Sphinx默認只會從sys.path里加載模塊,所以需要將demo目錄加入sys.path,所以現在打開conf.py,添加如下內容
  • 運行Sphinx生成html文檔
  • 現在,打開build/html/index.html就可以看到如下界面了

  • demo

  • 格式進一步優化

    上面的例子涵蓋了大多數常用操作,但是通常文檔都不是扁平的,而是層次化的,那么要如何將文檔層次化的分門別類。 
    實際上在rst文檔中是可以以鏈接的形式引用其他rst文檔的,也就是說我們可以自由的對文檔結構進行組織使其更易讀

    下面我們把run的文檔移動到一個單獨的頁面,只在index.rst里保留跳轉鏈接。在source目錄下創建run.rst

  • 然后將index.rst對應位置的內容刪掉,並進行修改

  • :doc:'Run API</run>'表示對一個文檔的引用,這里引用了當前目錄的run.rst,現在重新生成html,就會看到頁面顯示上的變化了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM