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

使用sphinx_gallery.sorting.ExplicitOrder()对示例进行显示排序

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

Sphinx-Gallery是一个用于创建和显示示例代码的工具。它可以根据Sphinx文档的配置自动运行示例代码,并将其结果嵌入到生成的文档中。示例代码是以目录为单位进行组织,按照默认的排序规则进行显示。

但有时候,我们可能希望手动指定示例代码的显示顺序,而不使用默认的排序规则。这时就可以使用Sphinx-Gallery库中的ExplicitOrder()类来实现。

使用Sphinx-Gallery进行示例代码显示排序分为两个步骤:创建排序文件和配置Sphinx文档。

步骤一:创建排序文件

创建一个名为examples_order.txt的文本文件,并将示例代码的文件名按照你想要的顺序写入该文件中。每行一个文件名。

例如,假设我们有三个示例代码文件:example1.pyexample2.pyexample3.py。我们希望先显示example3.py,然后是example1.py,最后是example2.py。我们可以在examples_order.txt中写入下面的内容:

example3.py
example1.py
example2.py

注意,文件名不需要包含完整路径,只需写入示例代码文件的文件名即可。

步骤二:配置Sphinx文档

打开你的Sphinx文档的conf.py文件,并添加以下代码:

from sphinx_gallery.sorting import ExplicitOrder

sphinx_gallery_conf = {
    # 其他配置项...
    'examples_dirs': 'path/to/examples',
    'gallery_dirs': 'path/to/gallery',
    'filename_pattern': '/^example[0-9]*\\.py$',
    'binder': {'org': 'myorg', 'repo': 'myrepo', 'branch': 'master', 'binderhub_api_token': 'mytoken'}, # 可选项,用于绑定Jupyter notebook
    'sorting': ExplicitOrder('examples_order.txt'), # 显示排序使用ExplicitOrder类
    # 其他配置项...
}

在以上代码中,需要修改examples_dirsgallery_dirs分别为示例代码的目录和生成的示例代码文档的目录。filename_pattern用于匹配示例代码文件的文件名模式,确保其与实际的文件名模式匹配。

注意,sorting选项需要使用ExplicitOrder类的实例,并将排序文件的路径作为参数传入。

保存并关闭conf.py文件后,在命令行中执行sphinx-build命令重新生成文档,示例代码将按照在排序文件中指定的顺序进行显示。

综上所述,通过使用Sphinx-Gallery库中的ExplicitOrder()类,我们可以轻松地对示例代码进行显示排序。这在需要特定的示例展示顺序时非常有用,特别是当示例之间存在逻辑依赖关系或有显示顺序的要求时。