使用Sphinx“TODO”指令示例 https://www.sphinx-doc.org/en/master/development/tutorials/todo.html我想参考一下todo
嵌入在 .rst 文件中的实例。例如,如果 .rst 文件内容包含:
.. todo:: foo
.. todo:: bar
我可以看到以下代码(取自 Sphinx TODO 示例页面)
class TodoDirective(SphinxDirective):
# this enables content in the directive
has_content = True
def run(self):
targetid = 'todo-%d' % self.env.new_serialno('todo')
targetnode = nodes.target('', '', ids=[targetid])
todo_node = todo('\n'.join(self.content))
todo_node += nodes.title(_('Todo'), _('Todo'))
self.state.nested_parse(self.content, self.content_offset, todo_node)
if not hasattr(self.env, 'todo_all_todos'):
self.env.todo_all_todos = []
self.env.todo_all_todos.append({
'docname': self.env.docname,
'lineno': self.lineno,
'todo': todo_node.deepcopy(),
'target': targetnode,
})
return [targetnode, todo_node]
创建目标节点ids
: todo-0
and todo-1
。
通过将指令嵌入到 .rst 文件中,可以成功引用这些指令:
.. todolist::
我想做的是参考todo
.rst 文件中的项目如下所示:
:ref:`todo-0`
:ref:`todo-1`
这需要获得TodoDirective
为每个目标节点生成标签。我一直不知道该怎么做。
这个简单的项目发布在这里:https://github.com/natersoz/sphinx_sandbox https://github.com/natersoz/sphinx_sandbox