有没有办法在Swift中将包含Markdown文本的纯文本字符串(即# heading,* list item,[a link](http://example.com)等)转换为NSAttributedString?我想我可以对某些MD模式的索引执行某种正则表达式搜索,并从中创建属性字符串,但这似乎很笨拙,感觉不对。有没有更简单的方法?
# heading
* list item
[a link](http://example.com)
NSAttributedString
huus2vyu1#
iOS 15现在支持直接通过NSAttributedString/AttributedString类解析Markdown。
AttributedString
let markdownString = "..." let attrString = try AttributedString(markdown: markdownString)
字符串详细信息:https://developer.apple.com/documentation/foundation/attributedstring
camsedfj2#
你可以尝试使用第三方库,比如Down,这比创建你自己的解析引擎要简单得多。安装此库后,您可以使用以下代码将markdown字符串解析为NSAttributedString s:
let downMdStr = Down(markdownString: yourMarkdownString) let attributedStr = try? down.toAttributedString()
字符串attributedStr是一个NSAttributedString。但是,如果出现错误,它可能是nil,所以请记住进行检查。
attributedStr
nil
zmeyuzjn3#
由于没有公认的答案,我自己也有一些问题,我使用SwiftyMarkdown从markdown创建了一个属性字符串。我对结果很满意,样式可以很容易地调整。代码基本上看起来像这样:
let down = SwiftyMarkdown(string: markdownString) let attributedString = down.attributedString()
字符串
3条答案
按热度按时间huus2vyu1#
iOS 15现在支持直接通过
NSAttributedString
/AttributedString
类解析Markdown。字符串
详细信息:https://developer.apple.com/documentation/foundation/attributedstring
camsedfj2#
你可以尝试使用第三方库,比如Down,这比创建你自己的解析引擎要简单得多。
安装此库后,您可以使用以下代码将markdown字符串解析为
NSAttributedString
s:字符串
attributedStr
是一个NSAttributedString
。但是,如果出现错误,它可能是nil
,所以请记住进行检查。zmeyuzjn3#
由于没有公认的答案,我自己也有一些问题,我使用SwiftyMarkdown从markdown创建了一个属性字符串。我对结果很满意,样式可以很容易地调整。代码基本上看起来像这样:
字符串