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

vhipe2zx  于 5个月前  发布在  Swift
关注(0)|答案(3)|浏览(79)

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

huus2vyu

huus2vyu1#

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

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

字符串
详细信息:https://developer.apple.com/documentation/foundation/attributedstring

camsedfj

camsedfj2#

你可以尝试使用第三方库,比如Down,这比创建你自己的解析引擎要简单得多。
安装此库后,您可以使用以下代码将markdown字符串解析为NSAttributedString s:

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

字符串
attributedStr是一个NSAttributedString。但是,如果出现错误,它可能是nil,所以请记住进行检查。

zmeyuzjn

zmeyuzjn3#

由于没有公认的答案,我自己也有一些问题,我使用SwiftyMarkdown从markdown创建了一个属性字符串。我对结果很满意,样式可以很容易地调整。代码基本上看起来像这样:

let down = SwiftyMarkdown(string: markdownString)
let attributedString = down.attributedString()

字符串

相关问题