code: def iterate_presentation_files(path=None, excludes=None, includes=None):
      
  
      # Defaults
      if includes is None:
          includes = []
      if excludes is None:
          excludes = []
  
      # Transform glob patterns to regular expressions
      includes_pattern = r'|'.join([fnmatch.translate(x) for x in includes]) or r'$.'
      excludes_pattern = r'|'.join([fnmatch.translate(x) for x in excludes]) or r'$.'
      includes_re = re.compile(includes_pattern)
      excludes_re = re.compile(excludes_pattern)
  
      def included(root, name):
          """Returns True if the specified file is a presentation file."""
          full_path = os.path.join(root, name)
          # Explicitly included files takes priority
          if includes_re.match(full_path):
              return True
          # Ignore special and excluded files
          return (not specials_re.match(name)
              and not excludes_re.match(full_path))
  
      # Get a filtered list of paths to be built
      for root, dirs, files in os.walk(path):
          dirs[:] = [d for d in dirs if included(root, d)]
          files = [f for f in files if included(root, f)]
          for f in files:
              yield os.path.relpath(os.path.join(root, f), path)
docs: Iterates the repository presentation files relative to 'path',
      not including themes. Note that 'includes' take priority.