ZhangMin.name67 downloadsPresent any Markdown note as full-screen slides. Auto-splits by rules or headings, continues long sections, fits content to screen, and adds a laser pointer and pen.
中文 | English
把任意 Markdown 笔记一键全屏演示成幻灯片——不需要改写成特定格式,不需要加 ---,打开就能讲。
--- 分隔线(或 <!-- slide -->)就按分隔线分;没有就按「出现 ≥2 次的最高级标题」分。代码块和 $$ 公式里的 ---、# 不会被误判,文字\n--- 这种 setext 标题也不会。title 或文件名生成封面。Podium: 全屏演示当前笔记(从头开始)Podium: 全屏演示当前笔记(从光标处开始)| 操作 | 按键 |
|---|---|
| 下一页 | → ↓ 空格 PageDown,或点击屏幕右侧 |
| 上一页 | ← ↑ PageUp,或点击屏幕左侧三分之一 |
| 首页 / 末页 | Home / End |
| 跳到第 N 页 | 输入数字 + 回车 |
| 切换全屏 | F |
| 黑屏 | B 或 . |
| 激光笔 / 画笔 / 荧光笔 | L / P / H(再按一次关闭) |
| 切换颜色 | C |
| 清除本页笔迹 | E |
| 退出 | Esc(有工具时先退出工具,再按退出演示) |
画笔模式下点击不会翻页,也不会打开链接;激光笔模式下点击照常翻页。触屏设备可左右滑动翻页(画笔模式下除外)。
---
slide-split: h2 # auto | hr | heading | h1 | h2 | h3
slide-max-lines: 0 # 0 = 不续页,只缩放
---
分页方式、每页最大行数(默认 18)、自动封面页、配色(跟随 / 深色 / 浅色)、字号倍率、进度条、笔迹自动消失(默认开)与停留时间(默认 2 秒)。
通过 BRAT(推荐,自动更新):安装 BRAT → Add beta plugin → 填入 zhangmin510/obsidian-podium。
手动:从 Releases 下载 main.js、manifest.json、styles.css,放到 <你的 vault>/.obsidian/plugins/podium/,然后在 设置 → 第三方插件 中启用 Podium。
校验来源:Release 中的文件都带有 GitHub 构建来源证明(artifact attestation),可以验证它们确实由本仓库源码经 GitHub Actions 构建:
gh attestation verify main.js -R zhangmin510/obsidian-podium
--- 分页,没有分隔线的笔记只有一页。源码在 src/,用 esbuild 打包成 main.js(main.js 是构建产物,不入库)。
npm install
npm test # 单元测试(分页、笔迹规则)
npm run lint # Obsidian 官方审核规则(eslint-plugin-obsidianmd)
npm run build # 生成 main.js
npm run dev # 监听 src/ 自动重新构建
| 文件 | 职责 |
|---|---|
src/split.js |
分页(纯函数) |
src/ink-model.js |
笔迹淡出、残影、工具切换规则(纯函数) |
src/ink.js |
激光笔 / 画笔画布层 |
src/presentation.js |
全屏演示界面、键盘与指针交互、自适应缩放 |
src/settings.js |
默认设置与设置页 |
src/main.js |
插件入口、命令、菜单 |
发布:更新 manifest.json / versions.json 版本号,推送同名 tag(如 0.2.0),GitHub Actions 测试、构建并自动创建 Release。
Present any Markdown note as fullscreen slides — no special syntax required.
--- rules (or <!-- slide -->) when present, otherwise at the shallowest heading level that occurs at least twice. Rules and headings inside code fences / math blocks are ignored.title or file name; start from cursor.E).Keys: →/Space next, ← previous, Home/End, number + Enter to jump, F fullscreen, B blackout, L laser, P pen, H highlighter, C color, E erase slide ink, Esc leave tool / exit.
Per-note overrides: slide-split: auto | hr | heading | h1 | h2 | h3, slide-max-lines: <n>.
Install via BRAT with zhangmin510/obsidian-podium, or copy the release assets into .obsidian/plugins/podium/.