我們正在計劃爲我們的軟件項目創建用戶手冊。目前,與代碼相關的所有內容都記錄在Sphinx中,我們希望使用Sphinx作爲手冊。有條件編譯Sphinx中的文檔部分
因爲我們正在編寫科學/工程軟件,會有很多像應力,應變,數值算法等的東西對於每個主題的主題,我們將擁有的信息中幾個階段:
- 基本信息:這個一兩句話描述可以用在任何我們需要的話題的簡短摘要。例如:機械應力的簡單定義。
- 更詳細的描述:這一段落的解釋可以用作幫助頁面的開頭,或更詳細的主題列表中的摘要。例如,關於引入軸嚮應力方程的機械應力段落。
- 技術信息。關於該主題如何適用於我們軟件用戶遇到的問題,這可以是多段。
- 代碼信息。這將是代碼中遇到主題的相關文檔。例如,我們可以指向我們的某個數值算法的實現。我們可以像我們目前那樣使用sphinx-apidoc。
正如你所看到的,信息逐漸變得更加複雜。我們希望在他們自己的.rst文件中管理每個主題,並根據需要獲取所需的信息。例如,也許我們想在工具提示中使用基本信息部分。在實際的幫助菜單中,我們可以在特定類別主題的目錄中使用詳細說明。在關於該主題的完整文章中,就像完整的pdf手冊中的內容一樣,我們可以提供技術信息以及基本和更詳細的說明。最後,我們希望僅將代碼信息保存在我們的內部文檔中。
將單個主題的所有信息保存在一個文件中,但根據我們生成的文檔有條件地編譯不同的部分將是很好的。
在Sphinx中是否有內置的方法來做這樣的事情?如果有人正在做類似的事情,你能告訴我們嗎?給我們一些工作流程的亮點?
斯芬克斯有兩個條件指令:[只](http://sphinx-doc.org/markup/misc.html#directive-only)和[ifconfig](http://sphinx-doc.org/ext/ ifconfig.html)。你有沒有嘗試過使用它們? – mzjn
這看起來是一個很好的開始。如果我們使用唯一的標籤,那麼我們必須在每個主題的文件中縮進每個塊。將來,如果我們想要更改每種文檔中包含的部分,我們將不得不更改每個文件中的每個塊。 我不知道是否有一種方法有條件地包含基於頭的文件塊。我想一個替代方案是將每個主題分成多個文件(stress_basic.rst,stress_code.rst等),並有條件地將文件包含在stress.rst文件中。這會讓事情變得更容易。 –
不,Sphinx不提供有條件地包含基於標頭的文件塊的方法。 – mzjn