diff --git a/TSMarkdownParser/TSMarkdownParser.m b/TSMarkdownParser/TSMarkdownParser.m index 8458f1a..ca3714a 100644 --- a/TSMarkdownParser/TSMarkdownParser.m +++ b/TSMarkdownParser/TSMarkdownParser.m @@ -207,7 +207,7 @@ - (void)addLinkParsingWithFormattingBlock:(TSMarkdownParserFormattingBlock)forma NSUInteger linkStartInResult = [attributedString.string rangeOfString:@"(" options:NSBackwardsSearch range:match.range].location; NSRange linkRange = NSMakeRange(linkStartInResult, match.range.length+match.range.location-linkStartInResult-1); NSString *linkURLString = [attributedString.string substringWithRange:NSMakeRange(linkRange.location+1, linkRange.length-1)]; - NSURL *url = [NSURL URLWithString:linkURLString]; + NSURL *url = [NSURL URLWithString:[linkURLString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; NSUInteger linkTextEndLocation = [attributedString.string rangeOfString:@"]" options:0 range:match.range].location; NSRange linkTextRange = NSMakeRange(match.range.location, linkTextEndLocation-match.range.location-1); @@ -215,10 +215,9 @@ - (void)addLinkParsingWithFormattingBlock:(TSMarkdownParserFormattingBlock)forma [attributedString deleteCharactersInRange:NSMakeRange(match.range.location, 1)]; [attributedString deleteCharactersInRange:NSMakeRange(linkRange.location-2, linkRange.length+2)]; - [attributedString addAttribute:NSLinkAttributeName - value:url - range:linkTextRange]; - + if (url) { + [attributedString addAttribute:NSLinkAttributeName value:url range:linkTextRange]; + } formattingBlock(attributedString, linkTextRange); }];