code: def run(self):
      env = self.state.document.settings.env
  
      # create a new target node for linking to
      targetid = "todo-%d" % env.new_serialno("todo")
      targetnode = nodes.target("", "", ids=[targetid])
  
      # make the admonition node
      ad = make_admonition(
          Todo,
          self.name,
          [("Todo")],
          self.options,
          self.content,
          self.lineno,
          self.content_offset,
          self.block_text,
          self.state,
          self.state_machine,
      )
  
      # store a handle in a global list of all todos
      if not hasattr(env, "todo_all_todos"):
          env.todo_all_todos = []
      env.todo_all_todos.append(
          {
              "docname": env.docname,
              "lineno": self.lineno,
              "todo": ad[0].deepcopy(),
              "target": targetnode,
          }
      )
  
      # return both the linking target and the node itself
      return [targetnode] + ad
  
file_path: pyqtgraph/doc/extensions/qt_doc.py
imports: from docutils import nodes
  from sphinx.util.compat import Directive
  from sphinx.util.compat import make_admonition
label_desc: Use image node_id 1 for calling the TodoDirective obj's underlying member method code with example usage: obj.run() and returns: unknown