一个原生的 SwiftUI 视图,用于在 iOS 或 macOS 应用中渲染 Markdown 文本。
构建像这样的实用库会占用我陪伴家人的时间。我在业余时间构建这些工具,因为我觉得回馈社区非常重要。请考虑赞助我,因为这能帮助我继续开发像这样有用的库 😬
您也可以关注我,并随时表达“感谢”。
AsyncImage
的完整反向移植样式 API
采用熟悉的 SwiftUI 基于样式的 API,您可以自定义几乎所有 markdown 元素的外观,无论是单独自定义还是组合自定义。
struct CustomUnorderedBullets: UnorderedListBulletMarkdownStyle {
func makeBody(configuration: Configuration) -> some View {
// you can also provide a completely new View if preferred 👍
configuration.label
.foregroundColor(.blue)
}
}
您甚至可以自定义动画,因为该库完全由 SwiftUI 元素组成。
struct ScaledImageStyle: ImageMarkdownStyle {
// image will scale up as its loaded, moving content out of the way
func makeBody(configuration: Configuration) -> some View {
configuration.label
.transition(.scale)
}
}
用于样式和可见性的修饰符也可以放置在 SwiftUI 层级结构中的任何位置,正如您所期望的那样
NavigationView {
MarkdownText(markdown)
}
// Styling
.markdownQuoteStyle(.inset)
.markdownOrderedListBulletStyle(.tinted)
.markdownImageStyle(.animated)
// Visibility
.markdownCode(.visible)
.markdownThematicBreak(.hidden)
还提供了一个 MarkdownText 演示,以更好地展示该库的功能。
使用该视图非常简单
MarkdownText("Some **markdown** text")
LazyMarkdownText(someMassiveMarkdownText)
甚至还有一个 LazyMarkdownText
视图,可以为那些需要提高滚动和加载性能的情况延迟加载其视图。
您可以手动安装(通过复制 Sources
目录中的文件)或使用 Swift Package Manager(首选)
要使用 Swift Package Manager 安装,请将此添加到您的 Package.swift
文件的 dependencies
部分
.package(url: "https://github.com/shaps80/MarkdownText.git", .upToNextMinor(from: "1.0.0"))