docs: def get_md_header(header_text_line: str,
                    header_duplicate_counter: dict,
                    keep_header_levels: int = 3,
                    parser: str = 'github',
                    no_links: bool = False) -> dict:
      r"""Build a data structure with the elements needed to create a TOC line.
  
      :parameter header_text_line: a single markdown line that needs to be
           transformed into a TOC line.
      :parameter header_duplicate_counter: a data structure that contains the
           number of occurrencies of each header anchor link. This is used to
           avoid duplicate anchor links and it is meaningful only for certain
           values of parser.
      :parameter keep_header_levels: the maximum level of headers to be
           considered as such when building the table of contents.
           Defaults to ``3``.
      :parameter parser: decides rules on how to generate anchor links.
           Defaults to ``github``.
      :type header_text_line: str
      :type header_duplicate_counter: dict
      :type keep_header_levels: int
      :type parser: str
      :returns: None if the input line does not correspond to one of the
           designated cases or a data structure containing the necessary
           components to create a table of contents line, otherwise.
      :rtype: dict
      :raises: a built-in exception.
  
      .. note::
           This works like a wrapper to other functions.
      """
      result = get_atx_heading(header_text_line, keep_header_levels, parser,
                               no_links)
      if result is None:
          return result
      else:
          header_type, header_text_trimmed = result
          header = {
              'type':
              header_type,
              'text_original':
              header_text_trimmed,
              'text_anchor_link':
              build_anchor_link(header_text_trimmed, header_duplicate_counter,
                                parser)
          }
          return header