
Security News
The Code You Didn't Write Is Still Yours to Defend
AI agents are pulling packages into environments no scanner is watching, creating exposure before security teams can see it.
This is a readme file in English
**导出pdf不再支持,请使用chrome打印服务另存为pdf,url中添加print=1,然后使用chrome打印 ctrl+P **
这可能是迄今为止最好的网页版PPT
nodeppt start -w支持单个slide事件:build/enter/leave/keypress,事件统一在[slide]中使用data-on-X来指定一个全局函数名
build/keypress会在当前slide完全渲染后触发,回调函数会接受一个event对象,如果想阻止默认事件(即翻页,或者对应的快捷键),可以使用event对象的stop()方法;slide退场后事件解绑
[slide data-on-build="globalCallbackName"]
var count = 0;
function globalCallbackName(e){
count++;
if(count<2){
//做一些页面动效,或者转场
e.stop();//阻止默认事件,就不会跳转
}
}
[slide data-on-keypress="globalCallbackName"]
function globalCallbackName(e){
if(e.keyCode==32){
//play();//触发自定义的页面效果
e.stop();//阻止默认事件,则不会触发nodeppt默认绑定的事件
}
}
对于nodeppt内部的文件,定位需要用根目录的方式来写,例如项目路径是 slide,demo.md中的图片使用:

对应的图片路径是 slide/img/demo.png
使用 nodeppt generate demo.md output -a 则生成后,图片路径是:output/img/demo.png
magic是在一页幻灯片中播放多个子页面,页面之间进行动效切换,但是slide不翻页(类似keynote的magicmove),使用[magic]标签包裹,子页面之间使用====间隔
[magic]标签支持全部转场动效,效果比较好的有:
[slide]
[magic data-transition="earthquake"]
## 标题1
-----
<div class="columns3">
<img src="/assets/searchbox-fe-framework-and-product/Snip20151209_11.png" height="450">
<img src="/assets/searchbox-fe-framework-and-product/Snip20151209_10.png" height="450">
<img src="/assets/searchbox-fe-framework-and-product/Snip20151209_12.png" height="450">
</div>
====
## 标题2
-----
<div class="columns3">
<img src="/assets/searchbox-fe-framework-and-product/Snip20151209_11.png" height="450">
<img src="/assets/searchbox-fe-framework-and-product/Snip20151209_10.png" height="450">
<img src="/assets/searchbox-fe-framework-and-product/Snip20151209_12.png" height="450">
</div>
====
## 标题3
-----
<div class="columns3">
<img src="/assets/searchbox-fe-framework-and-product/Snip20151209_11.png" height="450">
<img src="/assets/searchbox-fe-framework-and-product/Snip20151209_10.png" height="450">
<img src="/assets/searchbox-fe-framework-and-product/Snip20151209_12.png" height="450">
</div>
[/magic]
感觉默认的模板不符合新意?可以支持自定义模板,查看theme.moon
自定义后的模板路径在markdown的设置里填写:
title: 这是演讲的题目
speaker: 演讲者名字
url: 可以设置链接
transition: 转场效果,例如:zoomin/cards/slide
files: /css/theme.moon.css,尾部的文件
theme: moon //皮肤
highlightStyle: monokai_sublime //hljs的样式
headFiles: //头部的文件
usemathjax: //如果为yes,则引入mathjax,默认不建议开启,导出文件太多
date: 2015年12月20日
另外有:colors-moon-blue-dark-green-light 共六套自带皮肤可供选择
theme: moon
or url?theme=moon
npm install -g nodeppt
# 获取帮助
nodeppt start -h
# 绑定端口
nodeppt start -p <port>
nodeppt start -p 8090 -d path/for/ppts
# 绑定host,默认绑定0.0.0.0
nodeppt start -p 8080 -d path/for/ppts -H 127.0.0.1
# 使用socket通信(按Q键显示/关闭二维码,手机扫描,即可控制)
# socket须知:1、注意手机和pc要可以相互访问,2、防火墙,3、ip
http://127.0.0.1:8080/md/demo.md?controller=socket
在页面按键【Q】显示控制url的二维码和控制链接(需要隐身窗口打开),手机上可以使用左右touch滑动和摇一摇切换下一页
start命令行nodeppt start -c socket
在页面按键【Q】显示控制url的二维码和控制链接(需要隐身窗口打开),手机上可以使用左右touch滑动和摇一摇切换下一页
默认使用postMessage多窗口控制,打开方法:
http://127.0.0.1:8080/md/demo.md?_multiscreen=1
使用函数Slide.on,目前支持update函数,即转场后的回调。示例代码:
Slide.on('update', function(i, itemIndex, cls) {
//接受三个参数:
//* 当前slide的index
//* itemIndex当前slide进入的第几个build动画,从1开始
//* 方向pageup/pagedown
Puff.add('#FFC524' /*colors[i % 6]*/ , ctx, 20, 700, width / 2, height / 2, width / 1.8, 400);
clearInterval(timer);
//第十三个有动效
if (i === 13 || i === 14) {
timer = setInterval(function() {
Puff.draw(1);
}, 1E3 / FPS);
}
})
demo中第13张使用回调做了魔幻翻页效果
这么高端大气上档次的ppt,怎么能不导出分享给大家呢??
使用url?print=1访问页面,然后选择chrome的系统打印即可
# 获取generate帮助
nodeppt generate -h
# 使用generate命令
nodeppt generate filepath
# 导出全部,包括nodeppt的js、img和css文件夹
# 默认导出在publish文件夹
nodeppt generate ./ppts/demo.md -a
# 指定导出文件夹
nodeppt generate ./ppts/demo.md output/path -a
导出目录下所有ppt,并且生成ppt list首页:
nodeppt path output/path -a
nodeppt是支持marked语法的,但是为了制作出来更加完美的ppt,扩展了下面的语法
基本配置如下:
title: 这是演讲的题目
speaker: 演讲者名字
url: 可以设置链接
transition: 转场效果,例如:zoomin/cards/slide
files: 引入js和css的地址,如果有的话~自动放在页面底部
目录关系:可以在md同级目录下创建img、js、css等文件夹,然后在markdown里面引用,nodeppt默认会先查找md文件同级目录下面的静态资源,没有再找默认的assets文件夹下静态内容
如果设置单页动画,请参考下面的**单页动画设置**部分~
通过[slide]作为每页ppt的间隔,如果需要添加单页背景,使用下面的语法:
[slide style="background-image:url('/img/bg1.png')"]
# 这是个有背景的家伙
## 我是副标题
[slide]
## 主页面样式
### ----是上下分界线
----
nodeppt是基于nodejs写的支持 **Markdown!** 语法的网页PPT
nodeppt:https://github.com/ksky521/nodePPT
语法跟Github Flavored Markdown 一样~
使用方法:列表第一条加上 ` {:&.动画类型}``(注意空格)
* 上下左右方向键翻页
* 列表支持渐显动画 {:&.moveIn}
* 支持多级列表
* 这个动画是moveIn
目前支持的单条动画效果包括:
在md文件,顶部 配置 可以设置全局转场动画,如果要设置单页的转场动画,可以通过下面的语法
[slide data-transition="vertical3d"]
## 这是一个vertical3d的动画
如果需要完全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语法外,还提供了enter和outcallback,分别用于:切入(切走)到当前ppt,执行的js函数名。例如:
[slide data-on-leave="outcallback" data-on-enter="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) |
使用data-src作为iframe的url,这样只有切换到当前页才会加载url内容~
<iframe data-src="http://www.baidu.com" src="about:blank;"></iframe>
类似下面的语法:(更多用法查看ppts/demo.md文件)
title: nodeppt markdown 演示
speaker: Theo Wang
url: https://github.com/ksky521/nodePPT
transition: zoomin
[slide]
# 封面样式
## h1是作为封面用的,内部的都用h2
[slide style="background-image:url('/img/bg1.png')"]
# 背景图片 {:&.flexbox.vleft}
## 使用方法:[slide style="background-image:url('/img/bg1.png')"]
[slide]
## 主页面样式
### ----是上下分界线
----
nodeppt是基于nodejs写的支持 **Markdown!** 语法的网页PPT
nodeppt:https://github.com/ksky521/nodePPT
[slide]
什么?这些功能还不够用?
极客模式:查看源码的nodeppt.js,相信你会找到牛逼的手机互动(摇一摇换页)功能
查看项目目录ppts获取更多帮助信息
更多demo,查看 ppts 目录的demo
nodeppt -h
# 任何命令都可以输入-h查看帮助
nodeppt start -h
nodeppt startFAQs
A simple, in-browser, markdown-driven presentation framework
The npm package nodeppt receives a total of 105 weekly downloads. As such, nodeppt popularity was classified as not popular.
We found that nodeppt demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
AI agents are pulling packages into environments no scanner is watching, creating exposure before security teams can see it.

Security News
GitHub Actions checkout now blocks risky pull_request_target checkouts by default to help prevent pwn request supply chain attacks.

Product
Socket now supports Custom Roles and Repository Access Permissions so organizations can control who can access specific repositories and actions.