Markup
Markup 通过熟悉的标记语法生成富文本字符串
- 要强调单词或句子,您可以将文本包裹在 *星号* 中以创建加粗文本,或者用 _下划线_ 来创建斜体文本。
- 要显示文本中的更正,可以将文本包裹在 ~波浪线~ 中来删除文本。
- 您可以将格式选项组合在一起。
例如,以下文本
The *quick*, ~red~ brown fox jumps over a _*lazy dog*_.
将被格式化为
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 如何内部工作的,如果您对这个实现感到好奇。
安装
使用 CocoaPods
将 pod Markup
添加到您的 Podfile
使用 Carthage
将 git "gonzalezreal/Markup"
添加到您的 Cartfile
使用Swift包管理器
将以下代码添加到您的Package.swift
文件中:
Swift兼容性
- 版本
2.1
支持Swift 4.2
- 版本
2.0
支持Swift 4
帮助 & 反馈
- 如果您需要帮助,发现了一个错误,或有功能请求需要讨论,请提交一个问题。
- 如果您想对
Markup
进行修改,请提交一个PR。 - 在Twitter上关注@gonzalezreal。