docs: def html_output(cls, cs, score_dict, output_filename, ds_loc, limit):
          '''
          Generates rendered HTML output for the compliance score(s)
          @param cs              Compliance Checker Suite
          @param score_groups    List of results
          @param output_filename The file path to output to
          @param ds_loc          List of source datasets
          @param limit           The degree of strictness, 1 being the strictest, and going up from there.
          '''
          checkers_html = []
          for ds, score_groups in six.iteritems(score_dict):
              for checker, (groups, errors) in six.iteritems(score_groups):
                  checkers_html.append(cs.checker_html_output(checker, groups,
                                                              ds, limit))
  
          html = cs.html_output(checkers_html)
          if output_filename == '-':
              print(html)
          else:
              with io.open(output_filename, 'w', encoding='utf8') as f:
                  f.write(html)
  
          return groups