Документы по 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 .