这是 twitter-text 解析库的 Swift 实现。 该库具有解析推文和计算长度、有效性,解析 @提及、#标签、URL 等的方法。
直接将 twitter-text 添加到您的 Package.swift 文件中
dependencies: [
// ...
.package(url: "https://github.com/nysander/twitter-text.git", from:"0.0.1"),
],
targets: [
.target(name: "Your App", dependencies: [
/// ...
.product(name: "twitter-text", package: "twitter-text"),
]),
或通过 Xcode 添加
搜索 https://github.com/nysander/twitter-text.git
仓库
要从命令行运行一致性测试套件
% swift test --enable-test-discovery
您也可以从 Xcode 本身运行测试。 打开项目文件并像往常一样运行测试 (Cmd-U)。
twitter-text 2.0 引入了配置文件,用于定义如何解析推文的长度。 这允许向后兼容性和未来的灵活性。 旧式的传统 140 个字符的解析由 v1.json 配置文件定义,而 v2.json 已更新为“加权”推文,其中 Unicode 代码点范围可以具有独立于默认权重的权重。 所有代码点的总和(每个代码点适当加权)不应超过最大加权长度。
twitter-text 1.0 中的一些旧方法已被标记为已弃用,例如各种 +tweetLength:
方法。 新的 API 基于以下方法,-parseTweet:
- TwitterTextParser parseTweet(text:)
此方法将字符串作为输入,并返回一个结果对象,其中包含有关该字符串的信息。 TwitterTextParseResults
包括
weightedLength: Int
:推文的总体长度,其中代码点根据配置文件中定义的范围进行加权。
permillage: Int
:表示加权长度与最大加权长度相比的比例(千分比)。 值 > 1000 表示输入文本长于允许的最大值。
isValid: Bool
:指示输入文本长度是否对应于有效结果。
displayTextRange: NSRange
:一个由两个 Unicode 代码点索引组成的数组,用于标识推文的可显示内容的包含开始和不包含结束。 有关更多信息,请参阅此处 display_text_range
的描述:推文更新
validDisplayTextRange: NSRange
:一个由两个 Unicode 代码点索引组成的数组,用于标识推文的有效内容的包含开始和不包含结束。 有关扩展的推文有效负载的更多信息,请参阅 推文更新
发现 Bug?请在 GitHub 上创建一个 issue!
https://github.com/nysander/twitter-text/issues
该库直接基于其 Objective-C 实现,可以在 twitter/twitter-text 存储库中找到,由 Satoshi Nakagawa, David LaMacchia 和 Keh-Li Sheng 编写。
使用 3.1.0 版本作为参考。 此库中使用的所有测试用例 JSON 文件都直接从上述存储库复制,以保持一致性并确保结果相同。
版权所有 2020 Paweł Madej 和其他贡献者
根据 MIT 许可证 获得许可