我記錄了一系列使用Sphinx的項目,這些項目從intersphinx擴展中受益匪淺。從本質上講,大約有3個公用事業項目進入一個更大的項目,在較大的項目中,我需要從較小的項目中引用文檔。我已經intersphinx設置爲如何將一個獅身人面像角色轉換爲另一個?
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.intersphinx',
...
]
intersphinx_mapping = {
'project1': ('http://internal.url/to/project1/latest', None),
'project2': ('http://internal.url/to/project2/latest', None),
'project3': ('http://internal.url/to/project3/latest', None),
}
這讓我正常使用intersphinx:
:any:`project1.Class1`
它得到呈現爲與文本project1.Class1
的鏈接。我寧願它使用不合格的名字,雖然,所以我寫出來
:any:`Class1 <project1.Class1>`
一個很多。這很煩人。我真的想建立角色屈指可數,這樣我可以做
* :p1:`Class1` is from ``project1``
* :p2:`Class2` is from ``project2``
* :p3:`function1` is from ``project3``
其中:p1:`{text}`
被:any:`{text} <project1.{text}>`
更換等
是否有一個簡單的方法來做到這一點?我所有的搜索都提供了非常無用的信息,intersphinx的源代碼很難閱讀。理想情況下,我會做些什麼
def p1_role(name, rawtext, text, lineno, inliner, options={}, content=[]):
return sphinx.some_module.parse(':any:`{0} <project1.{0}>`'.format(text))
def setup(app):
app.add_role('p1', p1_role)
會是最好的,但我不知道這是否可用在任何地方。
這使我更接近我想要的,但我更喜歡較短的''':p1:'Name''',因爲我將不得不輸入很多,將避免必須鍵入模塊名稱。儘管現在這會做。謝謝! – bheklilr