2013-09-17 3 views
1

У меня есть некоторые проблемы с перекрестными ссылками функций в Sphinx. Пока у меня есть только один модуль, такие вещи как: func: `myfunc` работают правильно, и я могу щелкнуть по ссылке, чтобы перейти к указанной функции.Проблемы Sphinx с перекрестными ссылками на функции python

Тем не менее, добавление дополнительных модулей разрушает ссылку, и я больше не могу ее нажимать. Единственный способ обойти это - перечислить полное имя функции:: func: `mymodule.mysubmodule.MyClass.myfunc`. Это немного раздражает, особенно потому, что все имя также отображается на странице html.

Есть ли способ сократить название ссылки, по крайней мере, в документации по html? I.e. что вы только читаете myfunc вместо mymodule.mysubmodule.MyClass.myfunc?

Спасибо!

ответ

3

Есть две вещи, которые, вероятно, найти полезным:

  • Если текущий модуль (набор с .. currentmodule::) совпадает с модулем связи, вы не должны указывать его в явном виде. Также вы можете ссылаться на один из методов класса из docstring другого. Из doc:

Как правило, имена этих ролей ищутся сначала без какой-либо дополнительной квалификации, то с текущим именем модуля предварённое, затем текущий модуль и имя класса (если таковые имеются) предваряется. Если вы префикс имени с точкой, этот порядок будет отменен.

  • Если префикс полное имя с ~, как :func:`~mymodule.mysubmodule.MyClass.myfunc`, HTML будет содержать только последнюю часть.
Смежные вопросы