docs: def markdown_changelog(version: str, changelog: dict, header: bool = False) -> str:
      """
      Generates a markdown version of the changelog. Takes a parsed changelog dict from
      generate_changelog.
  
      :param version: A string with the version number.
      :param changelog: A dict from generate_changelog.
      :param header: A boolean that decides whether a header should be included or not.
      :return: The markdown formatted changelog.
      """
      debug('markdown_changelog(version="{}", header={}, changelog=...)'.format(version, header))
      output = ''
      if header:
          output += '## v{0}\n'.format(version)
  
      for section in CHANGELOG_SECTIONS:
          if not changelog[section]:
              continue
  
          output += '\n### {0}\n'.format(section.capitalize())
          for item in changelog[section]:
              output += '* {0} ({1})\n'.format(item[1], item[0])
  
      return output