2012-11-14 26 views
6

一個適當intersphinx設置,您可以從自己的文檔鏈接到Django的類是這樣的:如何鏈接到intersphinx Django的特定結構(如設置)?

:class:`django:django.db.models.Model` 

但是你如何鏈接到一個設定? Django使用它自己的:setting:構造來代替內置的東西,如:class:。如何鏈接到帶有intersphinx的設置?

我已經試過各種咒語,但沒有工作(有些可能是完全錯誤的):

:ref:`django:ROOT_URLCONF` 
:ref:`django:root_urlconf` 
:setting:`django:ROOT_URLCONF` 
:ref:`django:setting:ROOT_URLCONF` 
:django:setting:`ROOT_URLCONF` 

類似錯誤undefined label: django:root_urlconfUnknown interpreted text role "setting"迎接我。

+0

從intersphinx objects.inv中提取可用鏈接目標的方法也可能有所幫助。根據該文件,這是部分zlib編碼和簡單的gunzip/unzip不起作用。 –

回答

9

問題:我的本地獅身人面像不知道Django的自定義角色的獅身人面像setting。所以,這樣的完美的罰款intersphinx參考:

:django:setting:`ROOT_URLCONF` 

不起作用,直到你告訴獅身人面像對intersphinx目標的自定義角色。

最終得到它通過複製Django's sphinx extension一個小片段爲_ext/djangodocs.py旁邊的我的文檔工作:

def setup(app): 
    app.add_crossref_type(
     directivename = "setting", 
     rolename = "setting", 
     indextemplate = "pair: %s; setting", 
    ) 

我增加了以下我的獅身人面像」 conf.py

import os 
import sys 

... 

sys.path.append(
    os.path.abspath(os.path.join(os.path.dirname(__file__), "_ext"))) 
# ^^^ I'll do that neater later on. 

extensions = ['djangodocs', 
       # ^^^ I added that one. 
       'sphinx.ext.autodoc', 
       ... 
       ] 

... 

所以:intersphinx可以工作,但如果您指向一個自定義角色,則需要在本地定義該自定義角色。

+0

看起來你也可以直接在你的conf.py中定義setup(app)函數並完成它。 (不必將它放在一個單獨的文件中,將它放在sys.path中,並將其列爲sphinx擴展名。)http://sphinx-doc.org/config.html#confval-extensions - 「配置文件本身可以是一個擴展;爲此,你只需要提供一個setup()函數。「 – medmunds

2

您需要查看django的objects.inv以找出正確的交叉引用應該是什麼。

看來:

:std:setting:`ROOT_URLCONF <django:ROOT_URLCONF>` 

應該工作。

不知何故,我有django的objects.inv,但無法找到我從中檢索到的URL,理論上它應該是https://docs.djangoproject.com/en/1.4/objects.inv,但重定向多次最終導致文件未找到錯誤。

+0

我試過你的建議:不,仍然是一個「未知的解釋文本角色」std:設置'「,可悲的是。你是怎麼來到這個標準的:設置? –

+1

我從django中剔除了objects.inv(https://django.readthedocs.org/en/latest/objects.inv)。我有一個令人尷尬的糟糕python腳本解析objects.inv(https://gist.github.com/4118456) – epc

+0

還有一件事:你需要確保鏈接中的前綴(例如「django」)匹配任何您已經在conf.py中的intersphinx_mapping字典中列出,sphinx使用它來查找URL,然後從該URL中檢索objects.inv。 – epc

相關問題