微软开源 SwiftStreamingMarkdown:iOS 流式 Markdown 渲染库

微软在 GitHub 上开源了 SwiftStreamingMarkdown,这是一个面向 iOS 的高性能 Markdown 渲染库,专为流式文本场景设计,采用 MIT 许可证发布。

SwiftStreamingMarkdown GitHub

核心特性

该库提供两个 SwiftUI 入口:MarkdownView 处理静态 Markdown 文本,StreamedMarkdownView 处理流式输入。文本逐段到达时保持平滑动画与滚动,适合聊天或 LLM 回复界面。微软在 iPhone XS 上进行了性能测试,流式渲染加滚动场景下保持流畅无卡顿。

Markdown 支持

覆盖 CommonMark 和 GitHub 风格 Markdown 的核心子集,针对 LLM 响应中实际出现的语法做了针对性支持:

  • 标题(h1-h6)、粗体/斜体/删除线
  • 行内代码、链接、围栏代码块
  • 引用块(支持嵌套行内、列表和引用)
  • 有序列表、无序列表(支持嵌套)
  • 表格(支持列对齐)
  • 行内 LaTeX 数学公式(\( ... \)$$ ... $$
  • 引用药丸(citation pills)

暂不支持图片渲染(仅显示 alt 文本)、任务列表、脚注、高亮、原始 HTML 和 GitHub alerts。不支持的语法会降级为可读文本,不会中断流式渲染。

集成与体积

通过 Swift Package Manager 集成,集成后约增加 3 MB 下载体积。依赖包括 swift-markdown、cmark-gfm、iosMath(LaTeX 渲染)和 HighlightSwift(代码高亮)。

swift
.package(url: "https://github.com/microsoft/SwiftStreamingMarkdown", from: "0.1.0")

其他功能

提供 MarkdownRenderConfig 进行主题和排版定制,以及 MarkdownListener 协议用于分析追踪(渲染事件、表格交互、上下文菜单生命周期等)。项目包含完整的 SwiftUI 示例应用,支持可调节的流式演示和日志监听。

目前项目仍处于早期阶段(GitHub 24 stars、4 contributors、64 commits),但 MIT 许可证意味着可以直接集成到商业项目中使用。

来源:GitHub / microsoft/SwiftStreamingMarkdown

相关推荐