
我最近开发了一个有趣的演示工具:MDPT (Markdown Presentation Tool)。它最大的特点在于,将你熟悉的终端风格UI,直接渲染到了一个独立的GPU图形窗口中。这意味着,你不再需要依赖任何终端模拟器,就能获得复古又现代的演示体验。
核心设计思路
像 presenterm、slides 这类基于终端的演示工具确实很方便,但它们所能实现的效果,总是受限于终端本身的能力。MDPT 选择了另一条技术路径:我们直接使用 GPU 着色器 来绘制每一个“像素”,完整地模拟并渲染出整个TUI界面。
这样做带来了几个关键优势:
- 绚丽的转场效果:可以实现终端里几乎做不到的平滑着色器转场,比如溶解、圆形擦除等动画效果。
- 显示效果一致:无论在哪个操作系统平台上运行,最终的渲染结果都保持高度一致。
- 融合复古与现代:在保留经典终端美学风格的同时,拥有了真正的图形渲染能力,突破了纯文本的限制。
功能特性一览
MDPT 内置了丰富的演示功能,足以满足大多数技术分享的需求:
- 代码高亮与分段揭示:支持超过100种编程语言的语法高亮,并可以通过按
1 - 4 数字键来逐行或分段揭示代码内容。
- 多样的文字动画:为文字赋予了 Spotlight(聚光灯)、Wave(波浪)、FadeIn(淡入)和 Typewriter(打字机)等多种动画效果。
- 字符图表渲染:直接以字符方式渲染折线图、柱状图、饼图,甚至还支持渲染 Mermaid 流程图,无需借助外部图片。
- 广泛的字符支持:完整支持 CJK(中日韩)字符和 Emoji 表情符号。
- 复古艺术支持:可以嵌入
.pix 或 .ssf 格式的 PETSCII 字符画,为演示增添一丝怀旧趣味。
如何快速开始?
安装和启动 MDPT 非常简单。由于它基于 Rust 生态构建,你可以通过 Cargo 包管理器直接安装其运行时引擎,并运行演示:
cargo install rust_pixel
cargo pixel r mdpt g -r assets/demo.md
技术基石:RustPixel
MDPT 构建在 RustPixel 2.0 引擎之上。这是一个“以瓦片(Tile)为核心”的2D图形引擎,其设计非常巧妙:同一套核心代码可以无缝运行在原生终端、独立原生窗口以及 Web(通过 WebAssembly/WASM)环境中。这为 MDPT 实现全平台一致体验和未来可能的在线演示提供了坚实的技术基础。
值得一提的是,RustPixel 引擎内部还集成了一个 BASIC 解释器,非常适合用来快速构建游戏原型或进行图形编程教学,是一个非常有趣的 开源实战 项目。
如果你对它的技术细节或更多应用场景感兴趣,可以访问以下链接:
这个项目仍在积极开发中,我期待它能成为技术演讲者和极客们的一个实用工具。如果你有任何想法、建议或发现了 Bug,欢迎通过各种渠道反馈。毕竟,好的工具总是在社区的共同打磨下变得更好。
你对这种不依赖终端模拟器的 前端 演示方案怎么看?欢迎在 云栈社区 的技术论坛分享你的见解或类似的项目体验。
|