这是 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 代码点索引组成的数组,用于标识推文的有效内容的起始(包含)和结束(不包含)位置。 有关扩展推文有效负载的更多信息,请参阅 推文更新
发现错误? 请在 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 许可证获得许可