Markdown转NSAttributedString库?

17

现在iOS 6已经完全支持NSAttributedString,是否有一个库可以将带有markdown的NSString转换为NSAttributedString?

7个回答

11
我刚刚在MGBoxKit中添加了一个NSStringNSAttributedString的轻量级标记解析器。它不是Markdown,但非常相似。到目前为止,它支持加粗、斜体、下划线、等宽字体、文本颜色、背景颜色和字距调整。
现在MGMushParser类是一个独立的pod,因此可以很容易地独立于MGBoxKit使用。
NSString *markup = @"**bold**, //italics//, __underlining__, `monospacing`, and {#0000FF|text colour}";

UIFont *baseFont = [UIFont fontWithName:@"HelveticaNeue" size:18];
UIColor *textColor = UIColor.whiteColor;

myLabel.attributedString = [MGMushParser attributedStringFromMush:markup
                               font:baseFont color:textColor];

1
谢谢!像这样的东西正是我在寻找的。 - adevine
1
这似乎是它的新家: https://github.com/sobri909/MGMushParser - danfordham
感谢@danfordham。我已经编辑了回复,现在使用正确的链接。 - sobri

6
我刚刚开源了一个项目,可以将原始的Markdown转换为NSAttributedString: https://github.com/dreamwieber/AttributedMarkdown 这是一个正在进行中的工作,并包括一个演示应用程序,展示如何为各种Markdown元素分配属性。

非常有趣。是否还有一个函数可以将NSAttributedString转换为Markdown字符串? - Daniel Nordh
谢谢。目前还没有,但这肯定是可以添加的东西。 - Dreamwieber

1
看起来Bypass是一个不错的替代选择,也经常有更新(与其他大多数提到的仓库不同)。它甚至提供了一个自定义的UIView子类,可以自行处理渲染。而且它直接使用Core Text而不是UITextView,应该更快。

1
我曾经为寻找易于使用的全功能Markdown库而苦苦挣扎,最终我找到了CocoaMarkdown。它非常出色,支持大多数语法并且具有易于使用的API。唯一缺少的是图像支持,所以我分叉了它并添加了完整的图像支持,包括缓存和启用使用URL包装的图像,希望这能解决我为他人而遇到的问题:

https://github.com/X8/CocoaMarkdown


1

这似乎是一个很好的选择,但是当链接格式化为Markdown时,它们无法工作。 - myData

1

1

1
如果您需要高性能,请不要使用DTCoreText来处理HTML,因为它在渲染/解析方面仍然非常低效。请使用Bypass(ObjC)或Cocoa Markdown(Swift)。 - Allison

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接