使用sphinx_gallery.sorting.ExplicitOrder()根据自定义顺序对示例进行排序
ExplicitOrder是sphinx_gallery中的一个类,可用于根据自定义顺序对示例进行排序。在本文中,我们将详细介绍如何使用ExplicitOrder来对示例进行排序,并提供一个使用示例。
首先,我们需要安装sphinx-gallery包,可以通过使用以下命令来安装:
pip install sphinx-gallery
安装完成后,我们需要在Sphinx的配置文件(conf.py)中启用sphinx-gallery插件。可以通过在conf.py文件中添加以下代码来启用sphinx-gallery插件:
extensions = [
'sphinx_gallery.gen_gallery',
]
接下来,我们需要在配置文件中指定示例文件的路径和一些其他选项。可以通过添加以下代码来配置sphinx_gallery:
from sphinx_gallery.sorting import ExplicitOrder
sphinx_gallery_conf = {
'examples_dirs': ['path/to/examples'],
'gallery_dirs': ['path/to/gallery'],
'filename_pattern': '^.*\\.py$',
'line_numbers': True,
'within_subsection_order': ExplicitOrder(['example1.py', 'example2.py', 'example3.py']),
}
在上面的代码中,我们定义了示例文件的路径,生成的图库的路径以及一些其他选项。特别需要注意的是within_subsection_order选项,它使用了ExplicitOrder类来指定示例的排序顺序。
在这个示例中,我们传递了一个字符串列表,包含示例文件的名称。示例文件的名称必须按照您想要的排序顺序进行排序。在生成的图库中,示例将按照within_subsection_order选项中指定的顺序进行排序。
现在,我们可以编写我们的示例代码。在示例代码中,我们可以使用sphinx_gallery提供的一些功能来控制示例的外观和行为。例如,我们可以使用sphinx_gallery.line_numbers装饰器来指定示例是否显示行号。
def my_function():
# 示例代码
pass
# 设置示例是否显示行号
def setup(app):
app.connect('sphinx_gallery.scrapers', line_numbers)
def line_numbers(app, gallery_conf, fname):
# 设置示例是否显示行号
if gallery_conf.get('line_numbers', True):
app.builder.config.highlight_options['linenos'] = True
else:
app.builder.config.highlight_options['linenos'] = False
最后,我们可以通过运行以下命令来生成我们的文档:
sphinx-build -b html sourcedir builddir
生成的文档将包含已排序和格式化的示例,这些示例将按照我们在sphinx_gallery中指定的顺序进行排序。
总结起来,使用sphinx_gallery.sorting.ExplicitOrder()类可以轻松地按照自定义顺序对示例进行排序。只需将示例文件的名称按照所需的顺序放入字符串列表中,并在配置文件中使用ExplicitOrder类来指定排序顺序即可。这样,生成的文档将按照指定的顺序显示示例。
