基于 Markdown / Jupyter 生成幻灯片
Marp
简单介绍
- Markdown → 幻灯片
- 可导出 PDF / HTML
- 适合讲义、科研展示、课程分享
- 使用方式
- VS Code 安装 Marp 插件(推荐)
- npm 安装 Marp CLI
基本语法
基于现有的 Markdown 文件略微修改即可
- 使用
---
分页,前后最好有单独空行 - 在头部添加元信息进行全局配置
1
2
3
4
5
6
7---
marp: true
theme: gaia
paginate: true
---
...
配置
Marp 支持的配置包括全局配置和局部配置,前者出现在头部,后者出现在对应的分页。
在Markdown头部支持添加如下形式的元信息进行全局配置 1
2
3
4
5---
marp: true
theme: gaia
paginate: true
---
具体含义为:
marp
:true
开启 Marp 渲染(这是唯一的必选项)theme
:default
、gaia
、uncover
几个内置主题paginate
:true
、false
是否显示页码
在具体分页则可以使用html注释形式添加对应的局部配置,例如:
用大字体样式(通常用于封面)
1
<!-- _class: lead -->
翻转页面样式
1
<!-- _class: invert -->
Jupyter Notebook
简单介绍
- 使用 Jupyter Notebook 编写文本和代码
- 通过
nbconvert
转换为 Reveal.js 风格 HTML - 支持代码和公式展示,在特定情况下还支持运行代码
最大的特点是:幻灯片支持二维结构而非通常的线性结构。
使用方法
对于jupyter notebook的每一个cell,不仅有 code/markdown 两种类型, 还存在另一套slide类型系统,两者并不冲突,后者只在转换为幻灯片形式时起作用。
slide类型包括:
- Slide: 开始一个新的幻灯片。
- Sub-Slide: 在当前幻灯片下创建一个新的垂直幻灯片。
- Fragment: 在当前幻灯片或子幻灯片中添加一个新元素,该元素将在演示时逐一出现。
- Skip: 这个cell在幻灯片演示中将被忽略。
- Notes: 添加备注,只有在演讲者模式中才可见。
- None:默认
如果需要创建slide,最好手动将每一个cell都明确指定相关的类型,否则可能出现展示错误,类型None的cell可能会附加在上一个幻灯片中出现。
转换命令
安装 nbconvert
1
pip install nbconvert
使用如下命令可以导出html文件 1
jupyter nbconvert myslides.ipynb --to slides
使用如下命令可以开启server持续渲染html文件 1
jupyter nbconvert myslides.ipynb --to slides --post serve
展示幻灯片
jupyter导出的slide不同于传统的线性结构,它支持上下左右调整展示顺序:
- 左右顺序是幻灯片的主顺序,包括每一个Slide
- 上下顺序可以展示当前Slide的Sub-Slide(如果存在)
在展示时可以在浏览器按
esc
得到幻灯片的全局视图,进行页面的快速切换。
小结
工具 | 主要用途 | 渲染方式 | 导出格式 |
---|---|---|---|
Marp | Markdown -> 幻灯片 | VS Code 插件 或 CLI | HTML / PDF |
Jupyter | Notebook -> 幻灯片 | Reveal.js + nbconvert | HTML / PDF |
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Comments