anchor.diff:     </body>
   </html>
   ''';
  +}
  +
  +class Badger {
  +  Iterable<LintRule> rules;
  +  Badger(this.rules);
  +
  +  generate(String dirPath) async {
  +    var lintCount = rules.length;
  +
  +    var client = new http.Client();
  +    var req = await client.get(
  +        Uri.parse('https://img.shields.io/badge/lints-$lintCount-blue.svg'));
  +    var bytes = req.bodyBytes;
  +    await new File('$dirPath/count-badge.svg').writeAsBytes(bytes);
  +  }
   }
   
   class Indexer {
  
positive.code: // for details. All rights reserved. Use of this source code is governed by a
  // BSD-style license that can be found in the LICENSE file.
  
  import 'dart:io';
  
  import 'package:analyzer/src/lint/registry.dart';
  import 'package:args/args.dart';
  import 'package:linter/src/analyzer.dart';
  import 'package:linter/src/rules.dart';
  import 'package:markdown/markdown.dart';
  
  /// Generates lint rule docs for publishing to http://dart-lang.github.io/
  void main([List<String> args]) {
    var parser = new ArgParser(allowTrailingOptions: true)
      ..addOption('out', abbr: 'o', help: 'Specifies output directory.');
  
  
negative.code:   }
  
    var outDir = options['out'];
    await generateDocs(outDir);
  }
  
  const ruleFootMatter = '''
  