将Markdown格式的字符串转换为Swift中的NSAttributedString

时间:2018-06-15 00:11:23

标签: ios swift macos markdown nsattributedstring

有没有办法将包含Markdown文本的纯文本字符串(即# heading* list item[a link](http://example.com)等)转换为Swift中的NSAttributedString?我想我可以对某些MD模式的索引执行某种正则表达式搜索并从中创建属性字符串,但这看起来很笨拙,对我来说感觉不对。

有更简单的方法吗?

2 个答案:

答案 0 :(得分:7)

您可以尝试使用像Down这样的第三方库。它比创建自己的解析引擎要简单得多。

安装此库后,您可以使用以下代码将markdown字符串解析为NSAttributedString

let downMdStr = Down(markdownString: yourMarkdownString)
let attributedStr = try? down.toAttributedString()

attributedStrNSAttributedString。但是,如果发生任何错误,它可能是nil,所以请记住执行检查。

答案 1 :(得分:2)

iOS 15 现在支持通过 NSAttributedString/AttributedString 类直接解析 Markdown。

let markdownString = "..."
let attrString = try AttributedString(markdown: markdownString)

在此处查看详细信息:https://developer.apple.com/documentation/foundation/attributedstring