XNGMarkdownParser 0.3.2

XNGMarkdownParser 0.3.2

测试测试
语言语言 Obj-CObjective C
许可证 Apache 2
发布最后发布2015年4月

Jose Alcalá CorreaRenzo CrisóstomoMartin Kim Dung-Pham维护。



XNGMarkdownParser - Markdown 到 NSAttributedString 解析器

Dependency Status

这是一个基于 flex 解析器的 Markdown => NSAttributedString 解析器。它接收一个 NSString,将其转换为带有用 CoreText 格式化属性替换的 markdown 标签的 NSAttributedString。

该项目是从 NimbusKit 的 NSAttributedMarkdownParser 分叉而来:[https://github.com/NimbusKit/markdown](https://github.com/NimbusKit/markdown)

添加到项目中

手动

  1. 将 src 目录下的所有文件拖入到您的项目中。
  2. 在项目中导入 XNGMarkdownParser.h。
  3. 创建解析器对象的一个实例,并将要解析的字符串传递给它。
  4. 将得到的 NSAttributedString 插入到您喜欢的 NSAttributedString 标签实现中(比如 UITextView)

支持的功能

*italics*
**bold**
***bold italic***
~~strikethrough~~

# Header 1
## Header 2
### Header 3
#### Header 4
##### Header 5
###### Header 6

Header 1
========

Header 2
--------

http://google.com urls
[Text] (http://google.com "alt text") urls

扩展功能

  • UTF-8 支持
  • 大幅提高速度
  • 段落扩展格式化
  • 支持不同的链接字体
  • 测试和示例项目
  • 支持 CocoaPods

示例

最简单的示例

XNGMarkdownParser *parser = [[XNGMarkdownParser alloc] init];
NSAttributedString *string = [parser attributedStringFromMarkdownString:@"This is __rad__."];

进一步文本定制

// this parser initializes only once and customizes fonts, line height and link color
+ (XNGMarkdownParser *)titleMarkdownParser {
    static dispatch_once_t onceToken;
    static XNGMarkdownParser *parser;
    dispatch_once(&onceToken, ^{
        parser = [[XNGMarkdownParser alloc] init];

        parser.paragraphFont = [UIFont xng_14Font];
        parser.boldFontName = [UIFont xng_14Font].fontName;
        parser.linkFontName = [UIFont xng_14Font].fontName;

        const CGFloat lineHeight = 18;
        NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
        paragraphStyle.minimumLineHeight = lineHeight;
        parser.topAttributes = @{
            NSParagraphStyleAttributeName: paragraphStyle,
            NSForegroundColorAttributeName: self.textColor
        };
    });

    return parser;
}

查看附带的示例项目和测试以获取更多信息。