标记使用熟悉的标记语法生成带属性的字符串
例如,以下文本
The *quick*, ~red~ brown fox jumps over a _*lazy dog*_.
将格式化为如下所示
快速的,红色的 棕色的狐狸跳过了一只 懒狗。
只是为了给你一个概念,这是一张示例应用程序的屏幕截图,显示了标记文本和生成的带属性的字符串
渲染带属性的字符串
您可以使用 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
Markup
进行一些更改,请打开一个 PR。