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:   }
  
    registerLintRules();
  
    // Generate index
    new Indexer(Registry.ruleRegistry).generate(outDir);
  
negative.code: 
  List<String> get sortedRules => rules.map((r) => r.name).toList()..sort();
  
  Future<void> generateDocs(String dir) async {
    String outDir = dir;
    if (outDir != null) {
      Directory d = new Directory(outDir);
  