Ignore punctuation characters at the end of detected links

- fixes permalink handling when that's the case
- prevents deep linking loops between nightly and the main app
This commit is contained in:
Stefan Ceriu
2024-06-19 14:15:37 +03:00
committed by Stefan Ceriu
parent c4baa988d9
commit 1456c57da0
2 changed files with 31 additions and 3 deletions

View File

@@ -191,6 +191,13 @@ struct AttributedStringBuilder: AttributedStringBuilderProtocol {
link.insert(contentsOf: "https://", at: link.startIndex)
}
// Don't include punctuation characters at the end of links
// e.g `https://element.io/blog:` <- which is a valid link but the wrong place
while !link.isEmpty,
link.rangeOfCharacter(from: .punctuationCharacters, options: .backwards)?.upperBound == link.endIndex {
link = String(link.dropLast())
}
return TextParsingMatch(type: .link(urlString: link), range: match.range)
})