TSMarkdownParser 2.1.5

TSMarkdownParser 2.1.5

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
Released上次发布2018年3月

Tobias SundstandCœur 维护。



  • Tobias Sundstrand 和 Antoine Cœur

TSMarkdownParser

Build Status Carthage compatible Version Platform Licence

TSMarkdownParser 是一个使用 NSRegularExpressions 实现的 iOS 上 markdown 到 NSAttributedString 的解析器。它支持 John Gruber 在其网站 Daring Fireball 上提出的许多标准标签。它还通过正则表达式扩展性很强,因此很容易添加您自己的自定义标签或如果您愿意,则可以添加完全不同的解析语法。

支持的标签

以下是一份默认支持的标签列表,要添加您自己的标签,请参阅“添加自定义解析”。

Escaping
\`
`code`
``code``

Headings
# H1
## H2
### H3
#### H4
##### H5
###### H6

Lists
* item
** item
+ item
++ item
- item
-- item

Quotes
> text
>> text

Images
![Alternative text](image.png)

URL
[Link text](https://www.example.net)

Autodetection
https://www.example.net

Emphasis
*Em*
_Em_
**Strong**
__Strong__

要求

TSMarkdownParser 2.x 需要 Xcode 7 或更高版本。

安装

TSMarkdownParser 通过 CocoaPods 分发

pod 'TSMarkdownParser'

或者您可以克隆项目并构建项目中的静态库配置,或者将源文件拖放到项目中。

用法

standardParser类的 方法提供一个新的解析器实例,用于解析上面列出的标签。您还可以创建一个TSMarkdownParser的新实例并添加自己的解析。请参阅“添加自定义解析”以获取如何进行此操作的信息。

NSAttributedString *string = [[TSMarkdownParser standardParser] attributedStringFromMarkdown:markdown];

自定义外观

您可以通过更改TSMarkdownParser实例上的不同属性来配置如何显示markdown。或者,您可以选择自己实现解析并添加自定义属性到.attributed string。您还可以更改解析器返回的.attributed string。

添加自定义解析

下面是如何实现粗体标签解析的示例。您可以使用相同的添加解析规则方法添加自己的解析。您可以向标准parser或自己的parser实例添加解析规则。如果您想在配置属性中使用任何配置属性,请确保您使用弱引用对parser进行操作,以避免创建保留周期。

NSRegularExpression *boldParsing = [NSRegularExpression regularExpressionWithPattern:@"(\\*\\*|__)(.+?)(\\1)" options:kNilOptions error:nil];
__weak TSMarkdownParser *weakSelf = self;
[self addParsingRuleWithRegularExpression:boldParsing block:^(NSTextCheckingResult *match, NSMutableAttributedString *attributedString) {
    [attributedString deleteCharactersInRange:[match rangeAtIndex:3]];
    [attributedString addAttributes:weakSelf.strongAttributes range:[match rangeAtIndex:2];
    [attributedString deleteCharactersInRange:[match rangeAtIndex:1]];
}];

许可协议

TSMarkdownParser遵循MIT许可协议,有关更多信息,请参阅许可文件。