anchor.diff:      .join('\n\n');
   
   List<String> get sortedRules => rules.map((r) => r.name).toList()..sort();
  +
  +Future<void> fetchBadgeInfo() async {
  +  var client = new http.Client();
  +  var req = await client.get(Uri.parse(
  +      'https://raw.githubusercontent.com/dart-lang/pedantic/master/lib/analysis_options.yaml'));
  +
  +  var config = processAnalysisOptionsFile(req.body);
  +  for (var ruleConfig in config.ruleConfigs) {
  +    pedanticRules.add(ruleConfig.name);
  +  }
  +}
   
   Future<void> generateDocs(String dir) async {
     String outDir = dir;
  
positive.code: 
    registerLintRules();
  
    // Generate badge
    await new Badger(Registry.ruleRegistry).generate(outDir);
  
    // Generate index
    new Indexer(Registry.ruleRegistry).generate(outDir);
  
    // Generate rule files
    rules.forEach((l) => new Generator(l).generate(outDir));
  
    // Generate options samples.
  
negative.code: String toDescription(LintRule r) =>
      '<strong><a href = "${r.name}.html">${qualify(r)}</a></strong><br/> ${getBadges(r.name)} ${markdownToHtml(r.description)}';
  
  class CountBadger {
    Iterable<LintRule> rules;
    CountBadger(this.rules);
  
    generate(String dirPath) async {
      var lintCount = rules.length;
  