2017-07-14 60 views
1

我想知道是否可以在獅身人面像和/或RST ..include::指令中使用動態路徑?Sphinx docs/RST包含來自動態路徑的文件?

我的理由是我有一些由Sphinx生成的開發者文檔在一個倉庫中,但是我們在另一個倉庫中有一堆單元測試,我們希望將其包含在文檔中。如果我知道路徑在其他回購的文件,這是非常標準的,就像這樣:

Some text in my RST file 

.. include:: ../path/to/other/repo/file.py 
:code: python 

Some more text 

的問題是其他回購的相對路徑並不總是相同的,這取決於事情是如何被克隆和安裝。例如,在閱讀文檔時,其他回購經requirements.txt安裝在編輯模式劃分成/src子文件夾,本地回購是一個Git文件夾等

我可以添加邏輯到conf.py文件找到其他回購,並設置一個指針,我可以在RST文件中使用,但我不知道是否有可能在..include::有一個動態路徑?

到目前爲止,我能想到的唯一解決方法是讓我conf.py找到另一回購併創建我的RST文件引用一個符號鏈接,這是很好的,但我不知道是否有更好的辦法?

回答

1

在玩了這一點之後,我決定創建一個軟鏈接是一條路。 (起初我打算使用一個硬鏈接,但是在Read The Docs上創建該鏈接失敗,Soft鏈接在RTD和Sphinx中起作用)。

所以我有conf.py中的代碼,另一個我需要包含文件的倉庫,然後創建鏈接(首先刪除舊倉庫並檢查發現的倉庫的版本以確保它是正確的)。然後,我只是用軟鏈接做..include::,一切都很好。

所以總體而言不是一個壞的解決方案,最重要的是它在本地和RTD上工作,並且無論其他回購點的位置如何,它都可以工作。