Fix rare markdown crash
This commit is contained in:
@@ -8,7 +8,7 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
public struct Markdown {
|
public struct Markdown {
|
||||||
private let detector = try! NSDataDetector(types: NSTextCheckingResult.CheckingType.link.rawValue)
|
private var detector = try? NSDataDetector(types: NSTextCheckingResult.CheckingType.link.rawValue)
|
||||||
|
|
||||||
/// Ensure the specified URL has a scheme by prepending "https://" if it's absent.
|
/// Ensure the specified URL has a scheme by prepending "https://" if it's absent.
|
||||||
static func withScheme(_ url: any StringProtocol) -> any StringProtocol {
|
static func withScheme(_ url: any StringProtocol) -> any StringProtocol {
|
||||||
@@ -31,6 +31,9 @@ public struct Markdown {
|
|||||||
|
|
||||||
/// Process the input text and add markdown for any embedded URLs.
|
/// Process the input text and add markdown for any embedded URLs.
|
||||||
public func process(_ input: String) -> AttributedString {
|
public func process(_ input: String) -> AttributedString {
|
||||||
|
guard let detector else {
|
||||||
|
return AttributedString(stringLiteral: input)
|
||||||
|
}
|
||||||
let matches = detector.matches(in: input, options: [], range: NSRange(location: 0, length: input.utf16.count))
|
let matches = detector.matches(in: input, options: [], range: NSRange(location: 0, length: input.utf16.count))
|
||||||
var output = input
|
var output = input
|
||||||
// Start with the last match, because replacing the first would invalidate all subsequent indices
|
// Start with the last match, because replacing the first would invalidate all subsequent indices
|
||||||
|
|||||||
Reference in New Issue
Block a user