4

如何列出函数、类等...以显示在 Sphinx 的目录中?

或者,更一般地说,如何将页面中的任意条目(不是字幕)添加到目录中?

顺便说一句:我没有记录 Python 代码,所以我不能使用 autodoc 工具。

编辑

我尝试了指令.. contents:: name,但这似乎是为了放置一个 ToC,而不是定义一个条目。

编辑:部分解决方案

basic/localtoc.html我将模板复制到我的_templates目录中。

{{ pagename }}给出当前文件的路径并让我包含一个文件,这样我就可以将它们组合起来,并在运行{% include filename %}时为每个文件生成我自己的目录。conf.py我会试试这个,但有更自动的解决方案吗?

4

2 回答 2

1

我倾向于在 API 文档中将成员分为公共和私有部分,因此我希望它们出现在 TOC 层次结构中。我改编了@viblo 和@ramcdougal 的解决方案来实现这一点。

这是我的_static/apitoc.js

// Inject API members into the TOC in the sidebar.
// This should be loaded in the localtoc.html template.

$(function (){
    $('div.section').each(function(index) {
        var $section = $(this),
            $tocitem = $('.sphinxlocaltoc li:has(> a.reference.internal[href="#' + 
                         $section.attr('id') +
                         '"])');
            $members = $('<ul>').appendTo($tocitem);
        $('> dl > dt', $section).each(function(index) {
            var $member = $(this),
                $tocMember = $('<li class="api-member">');
            $tocMember.text($('.property', $member).text() + ' ');
            $tocMember.append('<a href="#' + $member.attr('id') + '">' + 
                              $('.descname', $member).text() + 
                              '</a>');
            $members.append($tocMember);
        });
    });
});

这是_templates/localtoc.html

<h3><a href="{{ pathto(master_doc) }}">{{ _('Table Of Contents') }}</a></h3>
{%- if display_toc %}
  {{ toc }}
  <div class="custom-index container">
    <script type="text/javascript" src={{ pathto(master_doc)[:-10] + '_static/apitoc.js' }}></script>
  </div>
{%- endif %}

结果如下所示:


页面内容

mypackage.mymodule

于 2014-12-01T09:03:00.777 回答
0

与其创建大量单独的模板,不如创建一个模板,该模板使用 javascript 在加载时填充目录中的额外条目。

我可以将Toc/list 中的 viblo 脚本与 sphinx 文档中的 automodule 生成的所有类一起使用,这些类动态生成ClassesFunctionsVariables.

我的_templates/localtoc.html然后变成:

<h3><a href="{{ pathto(master_doc) }}">{{ _('Table Of Contents') }}</a></h3>
{%- if display_toc %}

  {{ toc }}
{%- endif %}
<div class="custom-index container">
<script type="text/javascript" src={{ pathto(master_doc)[:-10] + '_static/pymunk.js' }}></script>

</div>
于 2013-01-19T06:09:48.880 回答