anchor.diff:    // TODO: add http://schema.org/codeRepository for github and gitlab links
     return map;
   }
  +
  +String _renderFile(FileObject file, String baseUrl) {
  +  final filename = file.filename;
  +  final content = file.text;
  +  if (content != null) {
  +    if (_isMarkdownFile(filename)) {
  +      return markdownToHtml(content, baseUrl);
  +    } else if (_isDartFile(filename)) {
  +      return _renderDartCode(content);
  +    } else {
  +      return _renderPlainText(content);
  +    }
  +  }
  +  return null;
  +}
  +
  +bool _isMarkdownFile(String filename) => filename.toLowerCase().endsWith('.md');
  +
  +bool _isDartFile(String filename) => filename.toLowerCase().endsWith('.dart');
  +
  +String _renderDartCode(String text) =>
  +    markdownToHtml('````dart\n${text.trim()}\n````\n', null);
  +
  +String _renderPlainText(String text) =>
  +    '<div class="highlight"><pre>${_escapeAngleBrackets(text)}</pre></div>';
  
positive.code:     if (selectedVersion.changelog != null) {
        changelogFilename = selectedVersion.changelog.filename;
        renderedChangelog =
            renderFile(selectedVersion.changelog, selectedVersion.homepage);
      }
  
      String exampleFilename;
  
negative.code:     if (selectedVersion.example != null) {
        exampleFilename = selectedVersion.example.filename;
        renderedExample =
            _renderFile(selectedVersion.example, selectedVersion.homepage);
        if (renderedExample != null) {
          renderedExample = '<p style="font-family: monospace">'
              '<b>${_htmlEscaper.convert(exampleFilename)}</b>'
  