anchor.diff:          ((lib['name'] as String).startsWith('dart-') ||
            (lib['name'] as String).startsWith('dart:'))) return;
   
  -    new LibraryDocAnalyzer(lib['qualifiedName'])..go();
  +    new LibraryDocAnalyzer(lib['qualifiedName'], base)..go();
     });
   }
   
   class LibraryDocAnalyzer {
   
  -  String name;
  +  String name, base;
     final Element section = new Element.section();
     final ParagraphElement classSum = new ParagraphElement();
     List<Element> sortedSections = new List();
   
  -  LibraryDocAnalyzer(this.name);
  +  LibraryDocAnalyzer(this.name, this.base);
   
     void go() {
       sortedSections.clear();
  
positive.code: void getLibrary(String name) {
    // https://api.dartlang.org/apidocs/channels/stable/docs/dart-collection.json
    // https://api.dartlang.org/apidocs/channels/stable/docs/dart-collection.DoubleLinkedQueue.json
    base = '$apidocs';
    gapsDiv.innerHtml = '';
    new LibraryDocAnalyzer(name.replaceFirst(':', '-'))..go();
  }
  
  void getPackage(String name) {
  
negative.code: 
    router = new Router()
          ..addHandler(baseUrl, (_) => null)
          ..addHandler(libraryUrl, showLibraries)
          ..addHandler(packageUrl, showPackage)
          ..listen()
          ..handle(window.location.toString());
  }
  
  void showLibraries(String path) {
    String names = libraryUrl.parse(path)[1];
    gapsDiv.innerHtml = '';
    names.split(',').forEach((String name) {
      getLibrary(name);
    });
  }
  
  void showPackage(String path) {
  