MarkdownView:SwiftUI中原生渲染Markdown的Swift包





项目名称:MarkdownView

项目概述

MarkdownView是一个Swift语言开发的开源库,它允许开发者在SwiftUI应用中原生渲染Markdown文本。得益于apple/swift-markdown,它能够完全符合CommonMark Spec规范。

功能特点

  • CommonMark兼容:完全遵循CommonMark规范。

  • SVG渲染支持:支持SVG格式的渲染。

  • 高度可定制和可扩展

    • 字体

    • 代码高亮主题

    • 颜色调整

    • 区块指令

    • 自定义图片

  • 完全基于SwiftUI实现

使用方法

创建一个Markdown视图,只需提供一个Markdown格式的字符串:

MarkdownView(text: "This is the Apple's **newly published** [swift-markdown](https://github.com/apple/swift-markdown)")

如果Markdown包含复选框,可以提供一个Binding字符串:

@State var text = """
- [x] Write the press release
- [ ] Update the website
- [ ] Contact the media
"""
MarkdownView(text: $text)

进一步定制

字体

可以设置自定义字体或更改文本样式:

MarkdownView(text: "# H1 title")
    .font(.largeTitle.weight(.black), for: .h1)

颜色调整

默认的代码块和区块引用的着色颜色是accent color,可以明确自定义:

MarkdownView(text: "> Quote and `inline code`")
    .tint(.pink, for: .inlineCodeBlock)

添加自定义提供者

可以添加自定义图片提供者和区块指令提供者来显示内容。首先创建你的提供者:

struct CustomImageProvider: ImageDisplayable {
    func makeImage(url: URL, alt: String?) -> some View {
        AsyncImage(url: url) {
            switch $0 {
            case .empty: ProgressView()
            case .success(let image): image.resizable()
            case .failure(let error): Text(error.localizedDescription)
            @unknown default: Text("Unknown situation")
            }
        }
    }
}

然后将你的提供者应用到MarkdownView

MarkdownView(text: markdownText)
    .imageProvider(CustomImageProvider(), forURLScheme: "my-image")

区块指令的实现方式完全相同。

Swift Package Manager

Package.swift的Swift Package Manager清单中添加以下依赖到你的dependencies参数:

.package(url: "https://github.com/LiYanan2004/MarkdownView.git", .branch("main")),

并将依赖添加到你的清单中声明的任何目标:

.target(name: "MyTarget", dependencies: ["MarkdownView"]),

依赖

或许喜欢

MarkdownText:原生SwiftUI视图渲染Markdown文本

MarkdownText是一个为iOS和macOS应用设计的原生SwiftUI视图,用于渲染Markdown文本,支持多种Markdown元素和自定义样式。

最近更新 2024-12-09

CryptoTracker:基于CoinGecko免费API构建的加密货币信息应用

CryptoTracker是一个使用SwiftUI和Combine构建的iOS应用,展示前250名加密货币信息,支持iOS 15.0+,集成了CoinGecko API,支持图片缓存和图表显示。

最近更新 2024-12-09

WaterTracker: 跨平台纯SwiftUI开发的喝水追踪应用

WaterTracker是一款跨iOS、iPadOS和watchOS平台的喝水追踪应用,使用SwiftUI开发,支持HealthKit和CloudKit数据同步,无广告、无内购。

最近更新 2024-12-09

热榜

Made with in Shangrao,China By 老雷

Copyright © devler.cn 1987 - Present

赣ICP备19009883号-1