用 Markdown 写幻灯片
我这几天在试一个叫
下一篇
上传照片总是报错“无效文件”,但明明尺寸、格式全对 →
fusuma 的工具。名字很有意思,取自日语里的“障子门(fusuma)”,寓意通过滑动来切换内容。它的核心逻辑非常符合开发者直觉:你只需要写一个纯粹的 Markdown 文件,用 --- 分隔符来划分每一页幻灯片。最让我惊喜的是它的元数据处理方式。它并没有搞什么私有的 XML 或复杂的配置格式,而是利用了 HTML 注释作为指令。比如你想给某页幻灯片加个 CSS 类,直接在 Markdown 里写注释就行:
<!-- .title -->
标题内容
下一页内容
这种做法极大地保证了文件的通用性,即便你把文件扔到 GitHub 上,它依然是一个合法的、可阅读的 Markdown 文档,而不会因为多了一些“脏数据”导致渲染失败。这种对开发体验(DX)的细节把控,确实有开源项目维护者的那种理想主义情怀。
对于想要快速演示代码或技术文档的同学来说,它的工作流非常丝滑。本地开发时直接用 npx fusuma start 开启热更新服务器,改完代码保存,浏览器里直接就能看到效果,完全不需要频繁执行构建命令。
到了交付阶段,它提供了非常丰富的输出选项,一个源文件可以根据命令生成不同的产物:
npx fusuma build # 生成优化后的静态 HTML/JS 包
npx fusuma pdf # 直接转成 PDF 格式
npx fusuma deploy # 自动把 build 目录推送到 GitHub Pages不过在测试过程中我也遇到了一点“惊喜”。当我尝试在一个没有配置 Git 远程仓库的目录下运行 npx fusuma build 时,CLI 报错信息居然试图去抓取远程 origin URL,这说明它的构建逻辑里内置了一些自动化程度极高的逻辑,甚至想帮你处理部署链路。
如果你厌倦了在 PowerPoint 里反复调整文本框位置,这种“文档即演示”的模式可能会让你觉得很爽。
npm install fusuma -D
npx fusuma init