2016-07-15 6 views
1

Сообщение Python Sphinx referencing long names дало один ответ, который был очень близок к тому, что я искал в отношении директив подстановки для имен длинных классов.Python Sphinx/замена покоя для длинных имен, определяющих правило замещения в том же исходном файле

def exampleFunction(): 
    '''Here is an example docstring referencing another 
    |ReallyLongExampleClassName| 

    .. |ReallyLongExampleClassName| replace:: 
            :class:`.ReallyLongExampleClassName` 

В приведенном выше примере определение правила замены находится в пределах одного блока pydoc. Я надеялся, что сделать что-то вроде этого:

"""define all rst links/substitutions used in this file 
.. |ReallyLongExampleClassName| replace:: :class:`.ReallyLongExampleClassName` 
.. |AnotherExampleClassName| replace:: :class:`.AnotherExampleClassName` 
""" 

# more code 
# more code 


def exampleFunction(): 
    '''Here is an example docstring referencing another 
    |ReallyLongExampleClassName| 

    # define function 

Поскольку каждый файл в вопросе специфичен, использование rst_epilog не распространяется очень хорошо. Возможно ли это.

ответ

0

Вы можете сделать это с переменной rst_epilog в своем conf.py файле. Это взято прямо из rst_epilog:

rst_epilog

Строка ReStructuredText, которая будет включена в конце каждого исходного файла, который считывается. Это подходящее место для добавления замещений, которые должны быть доступны в каждом файле. Пример:

rst_epilog = """ 
.. |psf| replace:: Python Software Foundation 
""" 

Но вы говорите, что rst_epilog не хорошо подходит для использования. Возможно, лучший подход include directive? Вы можете поместить ваши обычно используемые замены в один первый документ и включить его в документы, где вам нужно их использовать.

+0

Поскольку в каждом исходном файле есть уникальная уникальность в ссылках, которые им нужны, rst_epilog не работает в нашем случае. Кроме того, наша работа по генерации pydoc выполняется за кулисами. Участникам нашего набора lib не нужно беспокоиться о том, как это делается, им просто нужно отформатировать свои pydocs соответственно. Это в духе попыток сохранить для них все просто, и поэтому мы не раскрываем какую-либо конфигурацию pydoc стандартным вкладчикам. – marco

+0

Возможно, первое включение директивы - лучший выбор. Я обновил свой ответ с этим предложением. – Phil

+0

Спасибо, я посмотрел на это, но это означает, что пользователю нужно будет добавить дополнительные файлы в поддержку документации. Я надеялся на что-то похожее, но это просто невозможно. – marco

 Смежные вопросы

  • Нет связанных вопросов^_^