标记

Swift 5.1 Platforms Swift Package Manager Carthage Compatible CocoaPods Twitter: @gonzalezreal

标记使用熟悉的标记语法生成带属性的字符串

例如,以下文本

The *quick*, ~red~ brown fox jumps over a _*lazy dog*_.

将格式化为如下所示

快速的红色的 棕色的狐狸跳过了一只 懒狗

只是为了给你一个概念,这是一张示例应用程序的屏幕截图,显示了标记文本和生成的带属性的字符串

Screenshot

示例

渲染带属性的字符串

您可以使用 MarkupRenderer 从给定的标记文本生成带属性的字符串

import Markup

let renderer = MarkupRenderer(baseFont: .systemFont(ofSize: 16))
let attributedText = renderer.render(text: "The *quick*, ~red~ brown fox jumps over a _*lazy dog*_.")

访问标记语法树

使用 MarkupParser 为标记文本生成抽象语法树

let nodes = MarkupParser.parse(text: "The *quick*, ~red~ brown fox jumps over a _*lazy dog*_")
dump(nodes)

// Outputs:
[
  .text("The "),
  .strong([
    .text("quick")
  ]),
  .text(", "),
  .delete([
    .text("red")
  ]),
  .text(" brown fox jumps over a "),
  .emphasis([
    .strong([
       .text("lazy dog")
    ])
  ])
]

性能

解析和渲染都将花费线性时间来完成。

这篇文章 解释了 Markup 内部的工作原理,如果您对实现感兴趣的话。

安装

使用 Swift Package Manager

将 Markup 作为依赖项添加到您的 Package.swift 文件中。 有关更多信息,请参见 Swift Package Manager 文档

.package(url: "https://github.com/gonzalezreal/Markup", from: "2.3.0")

使用 Carthage

github "gonzalezreal/Markup" 添加到您的 Cartfile

使用 CocoaPods

pod Markup 添加到您的 Podfile

帮助 & 反馈