parameters: (input_filenames, input_pathname, output_pathname,
                  extensions=None)
docstring: Processes a list of Markdown documentation files.
  
    If input_pathname and output_pathname are specified, outputs HTML files
    into the corresponding subdirectories of output_pathname. If one or both is
    not specified, simply ensures the files exist and contain valid Markdown.
  
    Args:
        input_filenames: A list of filenames (absolute, or relative to $PWD) of
            Markdown files to parse and possibly render.
        input_pathname: The base directory of the input files. (Needed so they
            can be placed in the same relative path in the output path.)
        output_pathname: The output directory into which rendered Markdown files
            go, using that relative path.
        extensions: a list of Markdown.extensions to apply if any.
  
    Returns:
        nothing
  
    Raises:
        IOError: if any of the file operations fail (e.g. input_filenames
            contains a non-existent file).
docstring_summary: Processes a list of Markdown documentation files.
docstring_tokens: Processes a list of Markdown documentation files .
function: def ProcessDocs(input_filenames, input_pathname, output_pathname,
                  extensions=None):
    """Processes a list of Markdown documentation files.
  
    If input_pathname and output_pathname are specified, outputs HTML files
    into the corresponding subdirectories of output_pathname. If one or both is
    not specified, simply ensures the files exist and contain valid Markdown.
  
    Args:
        input_filenames: A list of filenames (absolute, or relative to $PWD) of
            Markdown files to parse and possibly render.
        input_pathname: The base directory of the input files. (Needed so they
            can be placed in the same relative path in the output path.)
        output_pathname: The output directory into which rendered Markdown files
            go, using that relative path.
        extensions: a list of Markdown.extensions to apply if any.
  
    Returns:
        nothing
  
    Raises:
        IOError: if any of the file operations fail (e.g. input_filenames
            contains a non-existent file).
    """
  
    outputting = (input_pathname is not None) and (output_pathname is not None)
  
    if extensions:
      markdown_parser = markdown.Markdown(extensions)
    else:
      markdown_parser = markdown.Markdown()
  
    for input_filename in input_filenames:
      markdown_text = ReadFile(input_filename)
      markdown_html = markdown_parser.reset().convert(markdown_text)
      if not outputting:
        continue
  
      full_html = FormatPage(markdown_html, title=input_filename)
      rel_filename = os.path.relpath(input_filename, start=input_pathname)
      output_filename = os.path.join(output_pathname, rel_filename) + '.html'
      WriteFile(output_filename, full_html)
function_tokens: def ProcessDocs ( input_filenames , input_pathname , output_pathname , extensions = None ) : outputting = ( input_pathname is not None ) and ( output_pathname is not None ) if extensions : markdown_parser = markdown . Markdown ( extensions ) else : markdown_parser = markdown . Markdown ( ) for input_filename in input_filenames : markdown_text = ReadFile ( input_filename ) markdown_html = markdown_parser . reset ( ) . convert ( markdown_text ) if not outputting : continue full_html = FormatPage ( markdown_html , title = input_filename ) rel_filename = os . path . relpath ( input_filename , start = input_pathname ) output_filename = os . path . join ( output_pathname , rel_filename ) + '.html' WriteFile ( output_filename , full_html )