2026-06-25 12:47 天天模拟器
6 月 13 日消息,本周三,微软在 GitHub 上发布了一款名为 SwiftStreamingMarkdown 的开源渲染库,专为 iOS 平台打造。这个库的核心目标是为了解决大型语言模型聊天界面等场景中,进行流式渲染 Markdown 文本时遇到的性能瓶颈问题。
该项目使用 MIT 许可证进行授权,开发者可以通过 Swift Package Manager 轻松地将其集成到自己的应用中。预计集成后,应用的下载体积会增加大约 3 MB。需要注意的是,这个库的设计初衷是在实现流畅滚动效果与逐字动画展示的同时,确保主线程不会承受过重的负担。
与传统的 Markdown 渲染方案相比,SwiftStreamingMarkdown 在流式文本生成方面进行了专门的优化处理。传统方案在处理 AI 逐段生成回答或对话内容逐字出现时,经常需要反复重组语法树,这很容易导致界面出现卡顿现象。
然而,这个新库允许文本逐步到达,并在同时完成解析与渲染工作。它还内置了过渡动画和滚动平滑功能,从而保证了聊天式界面的交互流畅性。开发者可以直接使用 StreamedMarkdownView 组件,并结合一个能够逐步返回完整文本的异步数据源,就能轻松获得平滑的逐段渲染体验。
对于静态文本的处理,该库也提供了 MarkdownView 组件进行常规渲染。在支持的 Markdown 语法方面,SwiftStreamingMarkdown 主要聚焦于 CommonMark 和 GitHub 风格 Markdown(GFM)的核心子集。
具体来说,涵盖的内容包括标题、段落、粗体与斜体文字、删除线、行内代码、链接、围栏式代码块、引用块、有序与无序列表、分隔线、表格、行内 LaTeX 公式与块级 LaTeX 公式,以及面向 LLM 来源溯源的内联引用标记。对于不被支持的语法,例如图片仅展示替代文本、任务列表未被实现、以及脚注和高亮等扩展语法未实现的情况,该库会直接将原始文本降级显示为可读文本,从而避免内容丢失或渲染中断。
在功能特性方面,这个库原生支持数学公式渲染,包括 LaTeX 的行内与块级格式。它还具备可配置的排版与主题系统、iOS 上下文菜单,并提供了用于分析与交互追踪的内置钩子功能。开发者可以通过 MarkdownRenderConfig 对象集中配置全局样式,并借助实现 MarkdownListener 协议来接收渲染生命周期事件以及用户的交互操作。
据微软介绍,经过在 iPhone XS 上的性能测试显示,该渲染器在处理持续流式内容滚动推送的高负载场景时,其主线程工作负载的控制表现优于其他常见库,没有出现明显的 UI 卡顿现象。在集成方式上,开发者可以在 Xcode 中通过依次点击“File — Add Package Dependencies”,然后输入 GitHub 仓库地址并选择版本进行集成,也可以在 Package.swift 清单文件中添加依赖条目。
此外,该仓库还提供了一个完整的 SwiftUI 示例工程,位于 Examples / SwiftStreamingMarkdownSample 目录下。这个示例展示了可调节块大小与间隔的流式演示、设置界面以及日志监听器的实现。对此感兴趣的用户可以查阅 GitHub 官方页面了解更多详情。
来源:IT之家
