Word的成功是形式对内容的胜利

近期偶尔到高校做些技术分享。我不喜欢写PPT,Word/PowerPoint是我最厌恶的几个软件,对Keynote也没有好感,没什么耐心在这些软件里点来点去

但我并不排斥为讨论和演讲做些书面上的准备。如果可以专注在内容,以Markdown来写作,而不必分心到排版和样式这些事情上,写完演讲所需要的内容之后,PPT能自动从markdown文本中生成,那该多怯意

要有光

幸运的是,jupyter允许我们这样做。

jupyter是个令人振奋的项目,如果要挑选出我最喜欢的几个工具,jupyter应该会排在前三

如果你来自 生物科学/物理学/人工智能/数据分析/量化 社区,jupyter可能已经在你的工具箱里了,如果你平时喜欢探索性的编码工作,那么你值得花一些时间上手jupyter

用jupyter写PPT

首先安装jupyterlab: pip3 install jupyterlab,jupyterLab是jupyter的下一代用户界面。安装完成之后,即可运行:jupyter lab

接着创建一个notebook,你就可以开始用Markdown写作PPT了

你可以把每个cell视为一页PPT,使用markdown在其中写作或代码,就像写博客,写完之后,点击右边栏的Cell Tools, 来设置cell

每个cell可以设置为以下多种类型:

写作完毕,选择导出为Slides:

导出文件为html,依赖于reveal.js(没有使用CDN),所以你需要在导出文件的同级别目录放置reveal.js(下载后解压即可)。

之后打开下载的html文件,你就可以在浏览器里看到使用jupyter写的PPT了,你可以把它们称为web PPT,演示的时候将浏览器全屏即可。

翻页笔

PPT翻页笔大约长这样:

你在台上演讲时,手握翻页笔,可以无线切换PPT,从而使PPT内容与你的演讲进度同步。

micro:bit PPT翻页笔

因为micro:bit中有蓝牙模块,所以我们可以利用micro:bit的蓝牙功能,来实现无线通讯;它还自带两个按钮,很适合用于制作翻页笔(前后翻页)

制作过程十分简单:

首先下载microbit固件到本地,然后拖拽到micro:bit中

完成之后,micro:bit将对外提供ble按钮服务,之后我们利用web bluetooth可以将浏览器,连上micro:bit,从而让micro:bit与js交互,而reveal.js有js api, 这就是micro:bit PPT翻页笔的原理.

注意:注意: web bluetooth目前只支持macOS、chrome OS、安卓三个平台下的 Chrome浏览器,暂不支持Windows系统

这块所需的js代码,我已经写好的。在你写作PPT时,只需在jupyter lab的第一个cell里贴上如下代码

1
2
3
4
5
6
# 连接micro:bit
*  打开电脑的蓝牙
*  点击右边的连接按钮

<button id="ble_button" style="color:blue">连接</button>
<script src="microbit_ble.js"></script>

然后把microbit_ble.js下载到jupyter lab导出的slide同级目录即可

听起来很绕的话,直接看源代码可能更清楚

开始使用

打开导出的slide,点击连接,选择micro:bit

至此,你就可以手握micro:bit开始你的演讲啦,使用电池供电,你就可以带着micro:bit在台上四处走啦

想象空间

如果你和我一样,是scratch和micro:bit的粉丝。你可以将microbit当作PPT翻页笔,而用scratch演示PPT。

具体策略有很多,最有趣的一种是直接用scratch创作动态内容,而将micro:bit作为一种体感设备,如此一来,你可以与你的PPT进行富有表现里的互动。如果你愿意,你可以选择跳一跳切屏或摇一摇抽奖

另一种策略,要简单一些,表现力也更弱,和传统PPT无异:将你的PPT转为480x360的图片,之后将图片作为背景导入scratch即可。然后使用我在scratch3.0 + micro:bit所介绍的方法,将micro:bit与scratch3.0连起来

参考