我正在开发一个狮身人面像扩展,其中包括一个自定义索引,如下所示:
from sphinx.domains import Index
class MyIndex(Index):
"""
Index subclass to provide the Python module index.
"""
name = 'funcindex'
localname = 'Function Index'
shortname = 'functions'
def generate(self, docnames=None):
collapse = False
content = []
for o in self.domain.data['objects']:
dirtype, name = o
docname, anchor = self.domain.data['objects'][o]
entries = [name, 0, docname, anchor, '','','']
letter = name[0]
content.append((letter, [entries]))
return (content, collapse)
def setup(app):
app.add_index_to_domain('std', MyIndex)
如何引用该索引?作为sphinx默认情况下生成的索引的列表如下所示:
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
如何将自己的添加MyIndex
到此列表?Sphinx确实会生成一个文件std-funcindex.html
,看起来不错。我所缺少的是一种引用此文件的方法。我尝试了以下所有组合,但均无效:
:ref:`funcindex`
:ref:`std-funcindex`
:ref:`std_funcindex`
不幸的是,在当前版本的Sphinx(1.2.3)中,使用时未添加标签add_index_to_domain
。以下代码将手动执行此操作(从问题中继续示例):
def setup(app):
app.add_index_to_domain('std', MyIndex)
StandardDomain.initial_data['labels']['funcindex'] = ('std-funcindex', '', 'Function Index')
StandardDomain.initial_data['anonlabels']['funcindex'] = ('std-funcindex', '')
这使
:ref:`funcindex`
作为对自定义索引的参考。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句