code: def run(self):
          
          env = self.state.document.settings.env
  
          try:
              class_name = self.arguments[0]
          except IndexError:
              raise SphinxError(
                  '{0} directive requires a class name as an '
                  'argument'.format(self.directive_name)
              )
          self._logger.debug('%s using class %s',
                             self.directive_name, class_name)
  
          summary_node = self._create_summary_node(class_name)
  
          # target_id = format_task_id(class_name)
          target_id = self.get_target_id(class_name)
          target_node = nodes.target('', '', ids=[target_id])
  
          # Store these task/configurable topic nodes in the environment for
          # later cross referencing.
          if not hasattr(env, 'lsst_task_topics'):
              env.lsst_task_topics = {}
          env.lsst_task_topics[target_id] = {
              'docname': env.docname,
              'lineno': self.lineno,
              'target': target_node,
              'summary_node': summary_node,
              'fully_qualified_name': class_name,
              'type': self.get_type(class_name)
          }
  
          return [target_node]
docs: Main entrypoint method.
  
          Returns
          -------
          new_nodes : `list`
              Nodes to add to the doctree.