anchor.diff:    }
   
     String _writeTarget(Target target) {
  -    String result = target.link;
  -    if (target.link.contains(' ')) {
  -      result = '<' + result + '>';
  +    String result;
  +
  +    if (target.link.contains(' ') && !target.link.contains(r'[<>]')) {
  +      result = '<' + target.link + '>';
  +    } else {
  +      result = escapeString(target.link);
       }
   
       if (target.title != null) {
  
positive.code:     String result = "";
      list.items.forEach((ListItem listItem) {
        String pad;
        String contents = writeBlocks(listItem.contents, list.tight);
        contents = contents.splitMapJoin("\n", onNonMatch: (String str) {
          if (pad == null) {
            String marker = list.bulletType.char + " ";
  
negative.code:     return blocks + _writeReferences();
    }
  
    String writeBlocks(Iterable<Block> blocks,
                       {bool tight: false, String unorderedListChar: "*"}) => blocks.map((Block block) {
      if (block is Para) {
        return writePara(block);
      } else if (block is Header) {
        return writeHeader(block);
      } else if (block is HorizontalRule) {
        return writeHorizontalRule(block, unorderedListChar);
      } else if (block is CodeBlock) {
        return writeCodeBlock(block);
      } else if (block is Blockquote) {
  