有没有办法将包含Markdown文本的纯文本字符串(即# heading
,* list item
,[a link](http://example.com)
等)转换为Swift中的NSAttributedString
?我想我可以对某些MD模式的索引执行某种正则表达式搜索并从中创建属性字符串,但这看起来很笨拙,对我来说感觉不对。
有更简单的方法吗?
答案 0 :(得分:7)
您可以尝试使用像Down这样的第三方库。它比创建自己的解析引擎要简单得多。
安装此库后,您可以使用以下代码将markdown字符串解析为NSAttributedString
:
let downMdStr = Down(markdownString: yourMarkdownString)
let attributedStr = try? down.toAttributedString()
attributedStr
是NSAttributedString
。但是,如果发生任何错误,它可能是nil
,所以请记住执行检查。
答案 1 :(得分:2)
iOS 15 现在支持通过 NSAttributedString
/AttributedString
类直接解析 Markdown。
let markdownString = "..."
let attrString = try AttributedString(markdown: markdownString)
在此处查看详细信息:https://developer.apple.com/documentation/foundation/attributedstring