陈斌彬的技术博客

Stay foolish,stay hungry

nodePPT - Just Enjoy Presentation

why nodePPT?

Maybe the best PPT webapp ever

  • markdown based on GFM;
  • mix-code with html and markdown
  • export your work with html and pdf format;
  • 18 different transition animations, and you can choose single page animation well;
  • Setting one page background image different than others;
  • overview mode, multiscreen mode, remote control with socket, shark to page-flipping with ipad/iphone;
  • canvas is also supported, with socket, we sync your multiscreen in real time, and you can type some notes;
  • syntax highlighting of course, and you may want to customize your syntax highlighting style, it’s supported well;
  • Animation in single page, one-step animation;
  • forward and backward callback function

install

npm install -g nodeppt

shell 使用

启动

nodeppt start -p port -d path/for/ppts

创建

支持 markdown 语法快速创建网页幻灯片。

nodeppt create ppt-name

img

按照提示输入基本信息后就可以创建,默认创建是 markdown 版本,如果需要创建 html 版本,可以使用:

nodeppt create ppt-name.html
# or
nodeppt create ppt-name.htm

markdown语法

nodeppt 是支持 markdown 语法的,但是为了制作出来更加完美的 ppt,扩展了下面的语法

配置

基本配置如下:

title: 这是演讲的题目
speaker: 演讲者名字
url: 可以设置链接
transition: 转场效果,例如:zoomin/cards/slide
files: 引入js和css的地址,如果有的话~自动放在页面底部

目录关系:可以在 md 同级目录下创建 img、js、css 等文件夹,然后在 markdown 里面引用,nodeppt 默认会先查找 md 文件同级目录下面的静态资源,没有再找默认的 assets 文件夹下静态内容

支持的转场动画包括:

  • kontext
  • vkontext
  • circle
  • earthquake
  • cards
  • glue
  • stick
  • move
  • newspaper
  • slide
  • slide2
  • slide3
  • horizontal3d
  • horizontal
  • vertical3d
  • zoomin
  • zoomout
  • pulse

分页

通过 [slide] 作为每页 ppt 的间隔,如果需要添加单页背景,使用下面的语法:

[slide style="background-image:url('/img/bg1.png')"]
# 这是个有背景的家伙
## 我是副标题

单页ppt上下布局

[slide]
## 主页面样式
### ----是上下分界线
----
nodeppt是基于nodejs写的支持 **Markdown!** 语法的网页PPT

nodeppt:https://github.com/ksky521/nodePPT

代码格式化

语法跟 Github Flavored Markdown 一样

单条动画

使用方法:列表第一条加上 {:&.动画类型}(注意空格)

* 上下左右方向键翻页
    * 列表支持渐显动画 {:&.moveIn}
    * 支持多级列表
    * 这个动画是moveIn

目前支持的单条动画效果包括:

  • moveIn
  • fadeIn
  • bounceIn
  • rollIn
  • zoomIn

单页动画设置

在 md 文件,顶部配置可以设置全局转场动画,如果要设置单页的转场动画,可以通过下面的语法

[slide data-transition="vertical3d"]
## 这是一个vertical3d的动画

插入 html 代码

如果需要完全 diy 自己的 ppt 内容,可以直接使用 html 标签,支持 markdown 和 html 混编。例如:

<div class="file-setting">
    <p>这是html</p>
</div>
<p id="css-demo">这是css样式</p>
<p>具体看下项目中 ppts/demo.md 代码</p>
<script>
    function testScriptTag(){

    }
    console.log(typeof testScriptTag);
</script>
<style>
#css-demo{
    color: red;
}
</style>

转场回调

前端的 ppt,难免会在页面中演示一些 demo,除了上面的插入 html 语法外,还提供了 incallback 和 outcallback,分别用于:切入(切走)到当前 ppt,执行的 js 函数名。例如:

[slide data-outcallback="outcallback" data-incallback="incallback"]
## 当进入此页,就执行incallback函数
## 当离开此页面,就执行outcallback函数

表格实例

### 市面上主要的css预处理器:less\sass\stylus
---
 |less| sass | stylus
:-------|:------:|-------:|--------
环境 |js/nodejs | Ruby | nodejs
扩展名 | .less | .sass/.scss | .styl
特点 | 老牌,用户多,支持js解析 | 功能全,有成型框架,发展快 | 语法多样,小众
案例/框架 | [Bootstrap](http://getbootstrap.com/) | [compass](http://compass-style.org) [bourbon](http://bourbon.io) |

插入 iframe

使用 data-src 作为 iframe 的 url,这样只有切换到当前页才会加载 url 内容

<iframe data-src="http://www.baidu.com" src="about:blank;"></iframe>

查看帮助

nodeppt -h
# 任何命令都可以输入-h查看帮助
nodeppt start -h

demo演示 & 使用方法

img