我想在Sphinx, reStructuredText show/hide code snippets中提及相同的功能。但该帖子上没有共享代码。
答案 0 :(得分:8)
SQLAlchemy文档使用特殊扩展名(https://bitbucket.org/zzzeek/zzzeeksphinx/)。
文档源包含带有自定义选项和标记的标记,如下例所示:
.. sourcecode:: python+sql
{sql}>>> engine.execute("select 1").scalar()
select 1
()
{stop}1
这是由特殊的Pygments lexer(PythonWithSQLLexer
)和Pygments formatter(PopupSQLFormatter
)处理,以生成“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文档中的许多代码示例都有一个“按钮”,用于切换交互式提示(>>>
,...
)的显示以及doctest样式代码段中的输出。通过提示和输出,可以更轻松地复制和粘贴代码。以下是几个示例:http://docs.python.org/library/datetime.html#module-datetime。
该功能在copybutton.js中实施。