anchor.diff:          packages[name]["versions"] = packages[name]["versions"]
           .reversed
           .map((Version version) => {
  -          "version": version,
  +          "version": version.toString(),
             "url": 'http://www.dartdocs.org/documentation/'
  -          '${name}/${version}/index.html#${name}'
  +          '${name}/${version.toString()}/index.html#${name}'
           }).toList();
         });
   
  
positive.code:     var template = mustache.parse(indexTemplate);
      var indexHtml = template.renderString(renderData, htmlEscapeValues: false);
      return indexHtml;
    }
  
    // TODO: DRY
  
negative.code:       dartDocsIndex.writeAsStringSync(_buildDartDocsIndexHtml(renderData));
        _copyDartDocsIndexHtml("dartdocs_index.html");
        dartDocsIndex.deleteSync();
  
        // Generate index.json
        String indexJson = JSON.encode(renderData);
        File dartDocsIndexJson = new File("dartdocs_index.json");
        dartDocsIndexJson.writeAsStringSync(indexJson);
        _copyDartDocsIndexJson("dartdocs_index.json");
        dartDocsIndexJson.deleteSync();
  
        return _packageBuildInfoDataStore.fetchBuilt(false);
      }).then((List<PackageBuildInfo> packageBuildInfos) {
        // TODO: DRY
  