Markdown для библиотеки NSAttributedString?

Теперь, когда NSAttributedString полностью поддерживается в iOS 6, есть ли библиотека, которая возьмет NSString с уценкой и преобразует ее в NSAttributedString?

Ответы

Ответ 1

Я только что добавил легкий анализатор разметки NSString to NSAttributedString в MGBoxKit. Это не Markdown, но это очень похоже. Пока он поддерживает полужирный, курсив, подчеркивание, моноширинность, цвет текста, цвет фона и кернинг.

Класс MGMushParser теперь является автономным модулем, поэтому его можно легко использовать независимо от 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];

Ответ 2

Я только открываю проект, который берет необработанную уценку и преобразует ее в NSAttributedString:

https://github.com/dreamwieber/AttributedMarkdown

Это незавершенное производство и включает демонстрационное приложение, которое показывает, как назначать атрибуты различным элементам уценки.

Ответ 3

DTCoreText преобразует html в NSAttributedString, также OHAttributedLabel имеют базовую поддержку разметки.

Ответ 4

В будущем, поскольку это был первый пост, который я нашел, теперь вы можете использовать NSAttributedString initWithData и NSDocumentTypeDocument для анализа простого html на iOS 7

Кажется, достаточно просто использовать анализатор Markdown для HTML, а затем initWithData, чтобы сделать все остальное. См. http://initwithfunk.com/blog/2013/09/29/easy-markdown-rendering-with-nsattributedstring-on-ios-7.

Для преобразования HTML см. мой ответ в изменение размера шрифта ios7 при создании nsattributedstring из html

Ответ 6

Похоже, что Bypass - хорошая альтернатива, которая также часто обновляется (в отличие от большинства других упомянутых ссылок). Он даже предоставляет пользовательский подкласс UIView, который позаботится о самом рендеринге. Он также использует Core Text напрямую, а не UITextView, который должен быть быстрее.

Ответ 7

Я много боролся за то, чтобы полностью заполнить библиотеку Markdown, что она проста в использовании, и, наконец, я нашел CocoaMarkdown.

Это действительно здорово, поддерживает большую часть синтаксиса и имеет простой в использовании API. Единственное, чего не хватало, это поддержка изображений, поэтому я разветкил его и добавил поддержку полного изображения, а также кеширование и возможность использовать образы, завернутые в URL-адреса, надеюсь, что он решит проблему, с которой я столкнулся для кого-то еще:

https://github.com/X8/CocoaMarkdown