想在 iOS App 中实现高性能原生 Markdown 渲染?特别是要替代老旧的 WebView/低效方案、支持 AI 对话流式输出?

21 条回复
90 次浏览

今天推荐一个值得关注的开源项目 ——
👉 MarkdownDisplayView(CocoaPods 上也叫 MarkdownDisplayKit)
仓库地址
中文 readme 地址

效果展示

正常打开渲染

image

流式渲染

image

项目概览

MarkdownDisplayView 是由本人 基于 Apple 最新 TextKit 2 构建的 iOS 原生 Markdown 渲染组件,目标是替代老方案,在性能、渲染效果和交互上都有显著提升。

核心特点

  • 极速渲染体验

    • 基于 TextKit 2
      • 支持异步渲染与增量更新
      • 流式渲染(Streaming Rendering)  适配 AI 对话场景,流式渲染部分模块整体流式出现(带有渐变动画)例如公式、图片、表格、自定义视频等。
      • 示例内容 18kb 文档(理论上不管多大 md 文档),首屏秒渲染。
  • 全面 Markdown 语法支持

    • 标题、列表、表格、代码块、引用、图片、嵌套模块、LaTeX 公式(包括有机化学公式)、目录点击跳转章节、自定义解析以及渲染模块等常规元素都支持 
  • 内置代码高亮

    • 支持 20+ 语言(比如 Swift、Python、JavaScript 等) 
  • 自动目录(TOC)

    • 自动提取标题生成可交互目录 
  • 高度可定制

    • 字体、颜色、间距、主题均可配置
      • 原生支持深色模式(Dark Mode) 
  • 丰富交互能力

    • 支持链接点击、图片预览、目录跳转事件回调

适用场景

适合用于:

  • AI 聊天 / 生成式内容(边输出边渲染)
  • 技术文档阅读器
  • 富文本 IM 消息组件
  • 博客/知识社区内容显示
  • 取代老旧的 WebView 方案,实现原生渲染

技术栈概况

  • 开发语言:Swift 
  • UI 框架:UIKit
  • 核心渲染引擎:TextKit 2
  • Markdown 解析swift-markdown

为什么值得关注?

相比基于 WebView 的渲染方案或 TextKit 1,这个组件:

✅ 性能更好
✅ 原生渲染体验更流畅
✅ 更适合流式输出和即时更新
✅ 更高可定制性,适合深度集成

适合对内容渲染体验有较高要求的场景,特别是在 AI/Chat UI 中的 Markdown 展示部分。集成了 iOS 系统 NatureLanguage 可以选择自定义的按字词句去出现等功能。依赖库只有苹果的 Markdown 解析,使用了 KaTeX 部分字体资源。

如果你正在做iOS Markdown 渲染、聊天内容展示或 AI 对话界面,这个库值得一试 👍

提前多谢大佬们帮点 star

❤️1
👍3
🔥1
125
种子用户
Admin

支持的,是图片 url 不对。应该是https://github.com/zjc19891106/MarkdownDisplayView/blob/master/Effects/normal.gif?raw=true

种子用户
Admin

@lin 点击图片链接,github 的图片要在落地页的图片里面再右键复制图片链接才是直接显示的

前排打手
Guardian

修正之后,帖子好像没有展示已被修正过的标记,是否考虑加一个类似“YYYY-MM-DD HH:mm:ss 已由 xxx 进行修正”

种子用户
Admin

@lin 不加上了,这个并不会给内容带来好处,相反会分散内容注意力。之前也考虑过编辑后加个编辑过的提示,再想想还是不加上了。

前排打手
Guardian

大佬goodgood
最近想自己整个 mac 端的私人定制 markdown 编辑器来着,参考 one note 的操作逻辑,还在找看看有没有开源的实现,再自己魔改 ui、加定制

OP

github 上有啊,markdown 搜索,好像 SwiftUI 写的,你看看,MostStar 排序

发表一个评论

R保持