斜杠 0.1.4

斜杠 0.1.4

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布上次发布2016年1月

Chris Devereux 管理。



斜杠 0.1.4

  • Chris Devereux

斜杠是一个 简单可扩展 的标记语言,用于设置 NSAttributedStrings 的样式。这种语言在外观上与 HTML 类似,但是每个标签的含义是由用户定义的。

用法

这个自述文档的第一段内容可以用斜杠标记语言表示如下:

<h1>Slash</h1>
Slash is a <strong>simple</strong>, <strong>extensible</strong> markup language 
that simplifies the creation of NSAttributedStrings. The language is similar in 
appearance to HTML, however the meaning of each tag is user-defined.

我们可以用以下方式从这个标记中创建一个新的 NSAttributedString:

NSAttributedString *myAttributedString = [SLSMarkupParser attributedStringWithMarkup:markup error:NULL];

生成的字符串将按照您将等价 HTML 添加到浏览器中时的格式进行格式化。

在 OS X 和 iOS 6.0 及以上版本中,斜杠提供了以下标签:

  • h1
  • h2
  • h3
  • h4
  • h5
  • h6
  • em
  • strong

为了自定义这些标签的样式,定义额外的标签,或使用完全不同的标签集,传递一个字典,该字典定义了每个标签的属性字典。

NSDictionary *style = @{
    @"$default" : @{NSFontAttributeName  : [UIFont fontWithName:@"HelveticaNeue" size:14]},
    @"strong"   : @{NSFontAttributeName  : [UIFont fontWithName:@"HelveticaNeue-Bold" size:14]},
    @"em"       : @{NSFontAttributeName  : [UIFont fontWithName:@"HelveticaNeue-Italic" size:14]},
    @"h1"       : @{NSFontAttributeName  : [UIFont fontWithName:@"HelveticaNeue-Medium" size:48]},
    @"h2"       : @{NSFontAttributeName  : [UIFont fontWithName:@"HelveticaNeue-Medium" size:36]},
    @"h3"       : @{NSFontAttributeName  : [UIFont fontWithName:@"HelveticaNeue-Medium" size:32]},
    @"h4"       : @{NSFontAttributeName  : [UIFont fontWithName:@"HelveticaNeue-Medium" size:24]},
    @"h5"       : @{NSFontAttributeName  : [UIFont fontWithName:@"HelveticaNeue-Medium" size:18]},
    @"h6"       : @{NSFontAttributeName  : [UIFont fontWithName:@"HelveticaNeue-Medium" size:16]}
};

NSAttributedString *myAttributedString = [SLSMarkupParser attributedStringWithMarkup:markup style:style error:NULL];

当一段文本属于多个元素时,应用的属性将是每个标签字典的并集,最内层元素的属性具有优先权。有关 Cocoa/Cocoa Touch 文本渲染系统支持的属性列表,请参阅 iOSOSX 的文档。

如果您想使用 “>” 或 “<” 字符,需要使用反斜杠进行转义(例如:\\>)。

请注意,链接属性仅从 iOS 6.0 开始支持。

安装

作为 Xcode 子项目

git clone https://github.com/chrisdevereux/Slash.git
  • 将 Slash.xcodeproj 添加为子项目
  • 将 Slash-iOS 或 Slash-OSX 添加为项目依赖项
  • 链接 libSlash-iOS.a 或 libSlash-OSX.a
  • $(BUILT_PRODUCTS_DIR)/include 添加到项目的头文件搜索路径(如果尚未添加)
  • #import <Slash/Slash.h>

要求

iOS 4.3 或 OS X 10.6(64位)以上。

iOS 6 之前的版本对富文本字符串的处理有限,并且某些斜杠功能需要 iOS 6。如果您要针对早期版本,请务必检查头文件文档。您还需要使用自定义视图(例如 NIAttributedLabelTTTAttributedLabel)来显示字符串,并且您的样式所需的属性字典格式将由该视图定义。

性能

在iPad 3代及更高版本上,以发布模式生成包含5个标签部分的200字符属性字符串大约需要0.5毫秒。如果您需要解析大量字符串,请考虑在后台队列中进行操作。

许可证

Slash遵循MIT许可证发布。

联系方式

Chris Devereux

[email protected]