给博客文章嵌入 PPT 演示
效果
可以通过鼠标和键盘控制
- 页面: ↑/↓/←/→ Space Home End(空格,home键,end键)
- 全屏: F
- Overview: -/+
- 演讲者笔记: N
- 网格背景: Enter
nodeppt
首先可以看看官网给的demo,非常的炫酷。
安装nodeppt
1 |
|
使用nodeppt
1 |
|
生成的网页可以使用键盘操作(类似PPT操作)
- Page: ↑/↓/←/→ Space Home End
- Fullscreen: F
- Overview: -/+
- Speaker Note: N
- Grid Background: Enter
- nodeppt 有演讲者模式,在页面 url 后面增加
?mode=speaker
既可以打开演讲者模式,双屏同步
端口port的好处是可以照着官网的demo文件学习和修改,保证多个slide.md在浏览器查看时不会冲突,默认的链接是http://192.168.0.105:8080/。
产生pdf:直接在浏览器上
command+P/ctrl+P
产生html:
之前版本通过
nodeppt generate ./ppts/demo.md -a
,见Github nodePPT v1.2.0当前版本产生html利用built指令 ,例如
nodeppt build slide.md
,产生的html在默认文件夹dist
中,包含CSS、IMG、JS三个文件夹和demo.html。在nodeppt仓库的Issue[1]上找到一个小哥做的爬虫程序,亲测有效。会生成一个html文件,虽然文件会大一点。不过用index.md文件实验,发现(某些)图片响应时间过长导致失败,不过自己写的markdown基本无压力转html,给小哥点大大的赞👍而且小哥表示:
之前试过直接用build,效果没问题,但build出来会有几个文件,如果通过手机或email分享出去直接播放的话稍显麻烦。
nodeppt入门
- 配置与hexo的post文件头一样,用 yaml 语法设定基本配置
1 |
|
- 正文使用
<slide>
对整个 markdown 文件进行拆分,拆成单页的幻灯片内容。 - 图片、样式、布局、icon、动画等设置可以看看仓库的文档和demo文件学习。
- 演讲者模式的批注通过来
:::
语法添加,然后再页面的链接添加?mode=speaker
,按N
开启演讲中模式。
1 |
|
踩坑
CSS样式导入失败
生成的html数学公式的格式全部错误,即使在nodeppt的配置部分引入katex的JS和CSS,导出的文档仍然会出错。
- 通过nodeppt build的html页面
打开生成的html文件可以看到[2]
1 |
|
只要把文件中所有//
开头的都替换成https://
,如
1 |
|
这样控制台就不会报错了,数学公式和fa-icon能正常显示了。
- 通过py程序爬的html页面
配合KaTeX官网的使用文档,在生成的html文件<head>
引用katex的JS和CSS。
1 |
|
添加后公式都能正确显示了。
在博客添加nodeppt
- 通过py程序爬的html页面
在Hexo博客里想调用或者链接nodeppt生成的html,需要hexo设置skip_render
, 指定不进行渲染的文件或文件夹,例如在source
目录下新建nodeppt
来存放nodeppt生成的html,则需要在根目录下的_config.yml
文件添加
1 |
|
- 通过nodeppt build的html页面
1 |
|
文件匹配是基于正则匹配的,如果需要忽略全部文件(/*
)、指定类型type文件(/*.type
)、全部文件以及子目录(/**
)以及多个文件需要用(- file/**
)。
对应的文件访问格式是../../nodeppt/file.html
或../../nodeppt/file/demo.html
,本页演示的加载是通过iframe
实现的。
1 |
|
注意:如果这一步不执行的话,debug会发现nodeppt生成的html会被hexo处理,产生错误
1 |
|
至于使用cdn来使用html似乎不行,出来的是html的源码,而不是网页。如果使用cdn的方式能成功就不用这么麻烦的skip_render
。
有一种简单的方法就是用github或者coding等部署nodeppt的html,再iframe的src填对应的网址。如果hexo的skip_render
设置正确,也可通过网址主页下的nodeppt下找到。
- https://pxxyyz.com/nodeppt/%E5%A4%9A%E5%A4%8D%E5%8F%98%E8%BF%91%E6%9C%9F%E8%BF%9B%E5%B1%95/demo.html
- http://uwrfy5.coding-pages.com/