docs: def build_multiple_tocs(filenames: list,
                          ordered: bool = False,
                          no_links: bool = False,
                          no_indentation: bool = False,
                          no_list_coherence: bool = False,
                          keep_header_levels: int = 3,
                          parser: str = 'github',
                          list_marker: str = '-') -> list:
      r"""Parse files by line and build the table of contents of each file.
  
      :parameter filenames: the files that needs to be read.
      :parameter ordered: decides whether to build an ordered list or not.
           Defaults to ``False``.
      :parameter no_links: disables the use of links.
           Defaults to ``False``.
      :parameter no_indentation: disables indentation in the list.
           Defaults to ``False``.
      :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 filenames: list
      :type ordered: bool
      :type no_links: bool
      :type no_indentation: bool
      :type keep_header_levels: int
      :type parser: str
      :returns: toc_struct, the corresponding table of contents for each input
           file.
      :rtype: list
      :raises: a built-in exception.
      """
      if len(filenames) > 0:
          for f in filenames:
              assert isinstance(f, str)
  
      if len(filenames) == 0:
          filenames.append('-')
      file_id = 0
      toc_struct = list()
      while file_id < len(filenames):
          toc_struct.append(
              build_toc(filenames[file_id], ordered, no_links, no_indentation,
                        no_list_coherence, keep_header_levels, parser,
                        list_marker))
          file_id += 1
  
      return toc_struct