anchor.diff:    final dataExists = await syncDataFile.exists();
   
     final syncData = dataExists
  -      ? new SyncData.fromJson(await syncDataFile.readAsStringSync())
  +      ? new SyncData.fromJson(await syncDataFile.readAsStringSync(),
  +          path: angularIoPath)
         : new SyncData(
             name: angularIoPath,
             docLink: '//github.com/angular/angular.io/' + angularIoPath);
  
positive.code:             return '- $link';
            }).join('\n');
  
    final liveExampleSection = syncData.liveExampleLink == null
        ? 'To run your own copy:\n'
        : 'You can run a [hosted copy](${syncData.liveExampleLink}) of this'
        'sample. Or run your own copy:\n';
  
    final readmeContent = '''
  ${syncData.name}
  ---------------
  
  Welcome to the example application used in angular.io/dart's [${syncData.name}](${syncData.docLink}) page.
  
  $liveExampleSection
  - Clone this repo.
  - Download the dependencies.
      ```
      pub get
      ```
  - Launch a development server.
      ```
      pub serve
      ```
  - Open a browser to `http://localhost:8080`.
    In Dartium, you'll see the app right away. In other modern browsers, you'll have to wait a bit while pub converts the app.
  
  $linkSection
  ''';
  
negative.code: /// README file.
  class SyncData {
    final String name;
    final String repoHref;
    final String liveExampleHref;
    final List<String> links;
  
    SyncData(
        {this.name, this.repoHref, this.liveExampleHref, this.links: const []});
  
    factory SyncData.fromJson(String json, {String path}) {
      final data = JSON.decode(json);
      return new SyncData(
          name: data['name'],
          repoHref: data['repoHref'] ?? '//github.com/angular/angular.io/' + path,
          liveExampleHref: data['liveExampleLink'],
          links: data['links']);
    }
  }
  