如何列出函数,类等...以显示在Sphinx的目录中?
或者,更一般地说,如何将页面中的任意条目(不是字幕)添加到目录中?
BTW:我没有记录Python代码,所以我不能使用autodoc工具。修改
我尝试了指令.. contents:: name
,但这似乎是为了放置一个ToC,而不是定义一个条目。
编辑:部分解决方案
我将basic/localtoc.html
模板复制到我的_templates
目录。
{{ pagename }}
给出了当前文件的路径,{% include filename %}
让我包含一个文件,所以我可以将它们组合在一起,只要为每个文件生成我自己的目录{{1}运行。我会尝试这个,但有更自动的解决方案吗?
答案 0 :(得分:0)
可以创建一个模板,使用javascript在加载时填充内容列表中的额外条目,而不是创建大量单独的模板。
我可以使用Toc/list with all classes generated by automodule in sphinx docs中的viblo脚本动态生成Classes
,Functions
和Variables
的列表。
我的_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>
答案 1 :(得分:0)
我倾向于将成员分组到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