欢迎访问宙启技术站
智能推送

使用sphinx_gallery.sorting.ExplicitOrder()根据自定义顺序对示例进行排序

发布时间:2024-01-04 03:01:23

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类来指定排序顺序即可。这样,生成的文档将按照指定的顺序显示示例。