В чем разница между директивами Sphinx only и ifconfig?

Sphinx знает две директивы для условного содержимого:

В чем разница между ними?


person Paebbels    schedule 19.11.2016    source источник


Ответы (1)


only

Директива only используется для включения/исключения содержимого на основе tags. tags можно указать:

  1. В conf.py (такое использование делает only очень похожим на ifconfig)
  2. Использование флага -t для sphinx-build (не работает как флаг для make, потому что -t является флагом --touch для make)

    пример.первый

    .. only:: draft
    
       This message only appears in drafts.
    

    команда

    $ sphinx-build  -t draft  -b html -d _build/doctrees . _build/html
    
  3. Формат или имя построителя. Вот где only сияет. Содержимое .. only:: html будет создано только при использовании make html и т. д.

    пример.первый

    .. only:: html
    
       This message only appears in HTML output.
    

    команда

    $ make html
    

ifconfig

ifconfig дает вам возможность включать содержимое на основе истинности любого выражения Python, включающего переменные конфигурации, зарегистрированные в conf.py. Это означает, однако, что вам нужно отредактировать conf.py, чтобы изменить, включен ли контент или исключен.

Вывод

Если вы хотите, чтобы ваш контент менялся без редактирования conf.py, вам нужен only. Например, я использую only для включения оглавления (директива contents) в свои документы HTML, но не в документы pdf (поскольку LaTeX создает их самостоятельно).

person user41689    schedule 11.08.2017