class_docstr: Use to turn our docstrings into Markdown.
class_docstr_tok: ["Use","to","turn","our","docstrings","into","Markdown","."]
code: def process_node(self, node: docspec.ApiObject):
      if not getattr(node, "docstring", None):
          return
  
      lines: List[str] = []
      state: ProcessorState = ProcessorState(parameters=OrderedDict())
  
      docstring = node.docstring
  
      # Standardize header syntax to use '#' instead of underscores.
      docstring = self.UNDERSCORE_HEADER_RE.sub(r"# \g<1>", docstring)
  
      # It's common to break up markdown links into multiple lines in docstrings, but
      # they won't render as links in the doc HTML unless they are all on one line.
      docstring = self.MULTI_LINE_LINK_RE.sub(r"\g<1>\g<2>", docstring)
  
      for line in docstring.split("\n"):
          # Check if we're starting or ending a codeblock.
          if line.startswith("```"):
              state.codeblock_opened = not state.codeblock_opened
  
          if not state.codeblock_opened:
              # If we're not in a codeblock, we'll do some pre-processing.
              if not line.strip():
                  state.consecutive_blank_line_count += 1
                  if state.consecutive_blank_line_count >= 2:
                      state.current_section = None
              else:
                  state.consecutive_blank_line_count = 0
              line = self._preprocess_line(node, line, state)
  
          lines.append(line)
  
      # Now set the docstring to our preprocessed version of it.
      node.docstring = "\n".join(lines)
  
imports: import argparse
  import logging
  import os
  import re
  import sys
  from collections import OrderedDict
  from dataclasses import dataclass
  from enum import Enum
  from multiprocessing import Pool, cpu_count
  from pathlib import Path
  from typing import List, Optional, Tuple
  import docspec
  from docspec import ApiObject, Class, Data, Function, Indirection, Module
  from docspec_python import format_arglist
  from pydoc_markdown import Processor, PydocMarkdown, Resolver
  from pydoc_markdown.contrib.loaders.python import PythonLoader
  from pydoc_markdown.contrib.renderers.markdown import MarkdownRenderer
label_desc: Use image node_id 2 for calling the AllenNlpDocstringProcessor obj's underlying member method code with example usage: obj.process_node(node) without return types