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

使用sphinx_gallery.sorting.ExplicitOrder()按照指定的顺序排列示例

发布时间:2024-01-04 03:02:36

sphinx_gallery是一个用于自动生成示例代码文档的工具,它可以根据给定的文件目录结构和文件命名规范,自动将示例代码提取并生成文档,方便用户浏览和学习。

在默认情况下,sphinx_gallery会按照示例代码文件的名称的字母顺序来对示例进行排序并生成文档。但是,有时候我们希望能够自定义示例的顺序,例如按照某个特定的逻辑顺序来组织示例,这时候就可以使用sphinx_gallery.sorting模块中的ExplicitOrder类。

下面我们来看一个使用ExplicitOrder类的示例。假设我们的示例代码目录结构如下:

examples/
    ├── example1.py
    ├── example2.py
    ├── example3.py
    └── example4.py

默认情况下,示例会按照文件名的字母顺序来排序。但是,我们想要按照示例代码的逻辑顺序来排列,即example3.py应该在example1.py之前,example2.py应该在example4.py之前。

首先,我们需要在sphinx的配置文件中指定使用ExplicitOrder类来排序示例。在配置文件(通常是conf.py)中添加以下代码:

from sphinx_gallery.sorting import ExplicitOrder

# ...

sphinx_gallery_conf = {
    # ...
    'sorting_order': ExplicitOrder(['example3.py', 'example1.py', 'example2.py', 'example4.py']),
    # ...
}

在上面的代码中,ExplicitOrder类的构造函数接受一个示例文件名列表作为参数,这个列表就是我们希望示例代码按照的顺序。在这个例子中,我们希望example3.py在example1.py之前,example2.py在example4.py之前。

配置完成后,重新生成文档,可以看到示例代码按照我们指定的顺序进行了排序。

这样,我们就可以使用ExplicitOrder类来自定义示例代码的排序顺序。这在一些需要按照特定逻辑来组织示例的情况下非常有用,可以让用户更方便地浏览和学习示例代码。

需要注意的是,示例代码中的文件名应该和我们在配置文件中指定的顺序保持一致,否则会导致排序不准确。因此,在添加新的示例代码或者调整示例代码顺序时,需要同步更新配置文件中的顺序列表。

总之,sphinx_gallery.sorting模块中的ExplicitOrder类可以让我们按照指定的顺序来排列示例代码,从而更灵活地组织和呈现我们的示例文档。