GMarkdown

August 11, 2025 · View on GitHub

GMarkdown 是一个专为 Swift 开发者设计的强大且多功能的 Markdown 渲染库。基于 swift-markdown 解析器构建,GMarkdown 提供纯原生渲染能力,确保与您的 iOS 应用程序无缝集成和高性能表现。

GMarkdown 目前处于测试阶段。尽管我们已经努力支持不同风格的 Markdown,但仍需要一些代码级别的优化和修改,以使 GMarkdown 架构更加合理。如果时间允许,未来将重新设计部分代码逻辑。

✨ 最新更新

🎉 现已支持 CocoaPods!

GMarkdown 现在可以通过 CocoaPods 轻松集成到您的项目中。只需在您的 Podfile 中添加以下内容:

pod 'GMarkdown'

功能特性

  • 纯原生渲染: 享受纯原生渲染带来的优势,确保所有 Markdown 内容都能快速高效地呈现。
  • 富文本支持: GMarkdown 支持多种富文本样式,让您的 Markdown 内容看起来专业而精美。
  • 图片渲染: 轻松在 Markdown 内容中渲染图片。
  • 代码块: 支持语法高亮显示代码,让代码片段更易于展示和阅读。
  • 表格: 创建和渲染表格,有效组织您的数据。
  • LaTeX 数学公式: 使用 LaTeX 渲染复杂的数学方程式,非常适合学术和科学内容。
  • Mermaid 图表: 使用 Mermaid 语法创建精美的流程图、时序图和其他可视化图表。
  • HTML 预览: 在 Markdown 文档中无缝预览和渲染 HTML 内容,提供更强的格式化灵活性。

系统要求

GMarkdown 支持 iOS 13+ 并依赖以下框架:

安装

Swift Package Manager(推荐)

GMarkdown 也可通过 Swift Package Manager 获取。要将其包含在您的项目中,请将以下内容添加到您的 Package.swift

dependencies: [
    .package(url: "https://github.com/GIKICoder/GMarkdown.git", from: "0.0.6")
]

CocoaPods

GMarkdown 可通过 CocoaPods 获取。要安装它,只需在您的 Podfile 中添加以下行:

pod 'GMarkdown'

然后运行:

pod install

使用方法

初始化

初始化并将 GMarkdown 视图添加到您的视图层次结构中:

let markdownView = GMarkdownMultiView()
view.addSubview(markdownView)
markdownView.frame = view.bounds

示例

以下是如何从文件加载和渲染 Markdown 内容的完整示例:

func setupMarkdown() async {
    guard let filepath = Bundle.main.path(forResource: "markdown", ofType: nil),
          let filecontents = try? String(contentsOfFile: filepath, encoding: .utf8) else {
        return
    }

    let chunks = await parseMarkdown(filecontents)

    DispatchQueue.main.async { [weak self] in
        self?.markdownView.updateMarkdown(chunks)
    }
}

func parseMarkdown(_ content: String) async -> [GMarkChunk] {
    return await withCheckedContinuation { continuation in
        DispatchQueue.global(qos: .userInitiated).async {
            let processor = GMarkProcessor()
            let chunks = processor.process(markdown: content)
            continuation.resume(returning: chunks)
        }
    }
}

截图展示

截图 1 截图 2 截图 3 截图 4 截图 5

许可证

GMarkdown 基于 MIT 许可证发布。详情请参阅 LICENSE

贡献

欢迎贡献!请提交 Pull Request 或创建 Issue 来帮助改进 GMarkdown。