macOS ios swift

MarkdownText

一个原生的 SwiftUI 视图,用于在 iOS 或 macOS 应用中渲染 Markdown 文本。

预览

Markdown Text Screenshot

赞助

构建像这样的实用库会占用我陪伴家人的时间。我在业余时间构建这些工具,因为我觉得回馈社区非常重要。请考虑赞助我,因为这能帮助我继续开发像这样有用的库 😬

您也可以关注我,并随时表达“感谢”。

Twitter

支持的 Markdown

特性

样式 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"))