Как показать и скрыть код в sphinx doc? - PullRequest
12 голосов
/ 16 ноября 2011

Я хочу, чтобы та же функциональность упоминалась в Sphinx, reStructuredText, чтобы показать / скрыть фрагменты кода . Но в этом посте нет общего кода.

1 Ответ

8 голосов
/ 04 декабря 2011

Документы по SQLAlchemy

В документации SQLAlchemy используется специальное расширение (https://bitbucket.org/zzzeek/zzzeeksphinx/).

Источник документации содержит разметку с пользовательскими параметрами и токенами, как в этом примере:

.. sourcecode:: python+sql

    {sql}>>> engine.execute("select 1").scalar()
    select 1
    ()
    {stop}1

Это обрабатывается специальным Pygments лексером (PythonWithSQLLexer) и Pygments форматером (PopupSQLFormatter) для генерации "всплывающего окна" <div> с кодом фрагмент и ссылка, которая показывает / скрывает его. Исходный код находится в sqlformatter.py .

Переключение показа / скрытия обрабатывается магией jQuery в init.js .

Система шаблонов Mako используется для генерации HTML-страниц (системой шаблонов по умолчанию в Sphinx является Jinja). Это настраивается путем создания подкласса TemplateBridge в mako.py .

В файле шаблона layout.mako указаны пути к файлам CSS и JavaScript (включая init.js). Подробнее о шаблонизировании Sphinx см. http://sphinx -doc.org / templating.html .

Документы Python

Многие примеры кода в документации по Python содержат «кнопку», которая переключает отображение интерактивных приглашений (>>>, ...) и вывод в виде фрагментов кода в стиле doctest. Благодаря подсказкам и выводу код может быть легко скопирован и вставлен. Вот несколько примеров: http://docs.python.org/library/datetime.html#module-datetime.

Функция реализована в copybutton.js .

...