gpt4 book ai didi

templates - 在 Sphinx 的目录中列出函数

转载 作者:行者123 更新时间:2023-12-01 22:55:18 24 4
gpt4 key购买 nike

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

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

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

编辑

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

编辑:部分解决方案

我复制了basic/localtoc.html模板到我的_templates目录。
{{ pagename }}给出当前文件的路径和{% include filename %}让我包含一个文件,这样我就可以将它们组合起来,并且只要 conf.py 为每个文件生成我自己的目录正在运行。我会试试这个,但有更自动的解决方案吗?

最佳答案

我倾向于在 API 文档中将成员分为公共(public)和私有(private)部分,因此我希望它们出现在 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
  • 公共(public) API
  • 类(class) MyPublicClass
  • 类(class) AnotherPublicClass
  • my_public_function

  • 私有(private) API
  • 类(class) MyPrivateClass
  • my_private_function

  • 关于templates - 在 Sphinx 的目录中列出函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14342056/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com