如何在sphinx doc中显示和隐藏代码?

时间:2011-11-16 12:30:50

标签: python python-sphinx

我想在Sphinx, reStructuredText show/hide code snippets中提及相同的功能。但该帖子上没有共享代码。

1 个答案:

答案 0 :(得分:8)

SQLAlchemy docs

SQLAlchemy文档使用特殊扩展名(https://bitbucket.org/zzzeek/zzzeeksphinx/)。

文档源包含带有自定义选项和标记的标记,如下例所示:

.. sourcecode:: python+sql

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

这是由特殊的Pygments lexerPythonWithSQLLexer)和Pygments formatterPopupSQLFormatter)处理,以生成“popup”<div>代码段和显示/隐藏它的链接。源代码位于sqlformatter.py

show / hide toggling由init.js中的jQuery magic处理。

Mako模板系统用于生成HTML页面(Sphinx中的默认模板系统是Jinja)。这是通过在mako.py中继承TemplateBridge来配置的。

在模板文件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中实施。