Slidev 的简介
Slidev /slʌɪdɪv/
基于 Node.js、Vue.js 开发,利用它我们可以使用 Markdown 及扩展语法编写 PPT,它支持各种好看的主题、代码高亮、公式、流程图、自定义的网页交互组件,还可以方便地导出成 pdf 或者直接部署成一个静态网站(纯静态的 HTML、JavaScript 文件)。前提需要安装 Node.js 的版本 >=14.0.0(注:Node.js 都会默认安装 npm,具体请参考笔记《网站 node 包管理器 npm》)
官网:Slidev、GitHub
另一款 Markdown 制作 PPT 利器:Marp、网文
Ubuntu 平台
1、Slidev 的安装与使用
1、项目创建
1
2
3
4
5
6
7
|
npm init slidev@latest #创建PPT项目,根据向导进行操作:
#1、输入项目名称(文件夹名称,例如输入:myppt)
#2、询问是否启动服务(输入:y)
#3、选择资源服务器(选择:npm)
#4、之后自动拉取资源包,最后自动启动本地演示服务
#5、根据提示在浏览器输入网址浏览PPT网站:http://localhost:3030
#6、如果想退出服务按`Ctrl + C`组合键退出
|
2、全局安装
1
2
3
4
5
6
7
8
9
10
|
npm i -g @slidev/cli #安装 slidev 工具(方便以后操作)
slidev -v #查看版本(用于验证是否安装成功)
####命令基本使用####
cd myppt #进入之前创建的项目文件夹
slidev #启动本地演示服务(浏览网址:http://localhost:3030,按`Ctrl + C`组合键退出)
slidev build #构建静态网站网页(存到 dist 文件夹,并且手工把 index.html 网页内容的 href="/assets/ 改为 href="/网站相对路径/assets/ 相对路径)
slidev build --base aaa #同上,并指定网站相对路径,无须手工改 index.html(例如主页为 https://o2ospring.github.io 则网站相对路径 https://o2ospring.github.io/aaa)
slidev export #构建PPT为PDF文件(测试不成功,以后再补充!!!!)
#构建PPT事前需要安装依赖包:npm i -D playwright-chromium
|
2、PPT 内容编写及语法
PPT 浏览快捷键 ●
这里提前介绍一下我们浏览已构建好 PPT 网页的基本操作快捷键(下表),如果要更多操作可以把鼠标移到网页左下角即可调出导航菜单。
快捷键 |
动作 |
← |
前一步显示 |
→ 或 空格 |
后一步显示 |
↑ |
前一页显示 |
↓ |
后一页显示 |
f |
全屏进入/退出 |
o |
总览进入/退出 |
d |
亮/暗模式切换 |
PPT 整体内容编写 ●
在根目录下的slides.md
文件里编写整个 PPT 文档,使用标准的 Markdown 语法编写即可,也可以使用扩展语法来丰富 PPT 内容及样式。首页开头有两个---
包含相关配置信息(例如:使用哪个主题等)。页与页之间使用一个---
作为分隔,也可以像首页一样使用两个---
包含自己专用配置信息(例如:修改此页布局为左右分割)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
---
# 主题方案选择(默认:'default',更多:https://cn.sli.dev/themes/gallery.html)
theme: 'default'
# 配色方案选择(自动:'auto',明亮:'light',暗黑:'dark')
colorSchema: 'auto'
# 幻灯片长宽比(默认:'16/9')
aspectRatio: '16/9'
# 幻灯片的宽度(默认:空白,单位为 px)
canvasWidth: 980
# 幻灯片总标题(默认:空白->首页标题,否则这里指定总标题)
title: ''
# 总标题的后缀(默认:'%s',加入后缀如:'%s-我的PPT')
titleTemplate: '%s - Slidev'
# 幻灯片的信息(点击左下角导航栏中感叹号查看),可以使用 markdown 语法来书写
info: |
## 关于本 PPT
这是我的第一个 PPT 演示,请关注我博客 [o2ospring's blog](https://o2ospring.github.io)!
# 语法高亮设置(目前可选 'prism' 或 'shiki' 方案)
highlighter: 'prism'
# 显示代码行号(显示行号:true,不显示行号:false)
lineNumbers: false
# 启用 monaco 编辑器,默认情况下仅在开发者(dev)模式中启用
#monaco: 'dev'
# 在单页(SPA)构建中启用 pdf 下载,也可以指定一个自定义 url
#download: true
# vue-router 模式,可以使用 'history' 或 'hash' 模式
#routerMode: 'history'
# 字体将从 Google 字体自动导入
# 了解更多:https://sli.dev/custom/fonts
#fonts:
# sans: 'Roboto'
# serif: 'Roboto Slab'
# mono: 'Fira Code'
# 为所有幻灯片添加默认的 frontmatter
#defaults:
# layout: 'default'
# random image from a curated Unsplash collection by Anthony
# like them? see https://unsplash.com/collections/94734566/slidev
background: https://source.unsplash.com/collection/94734566/1920x1080
# apply any windi css classes to the current slide
class: 'text-center'
# persist drawings in exports and build
drawings:
persist: false
---
# 这是第一页标题
本行内容为首页内容(一般是幻灯片主题)....
<!-- 扩展文字按钮,一般用于在首页点击进入下一页 -->
<div class="pt-12">
<span @click="$slidev.nav.next" class="px-2 py-1 rounded cursor-pointer" hover="bg-white bg-opacity-10">
点击进入下一页 <carbon:arrow-right class="inline"/>
</span>
</div>
<!-- 专门做的 github 链接小图标(在页面右下角) -->
<div class="abs-br m-6 flex gap-2">
<a href="https://github.com/o2ospring" target="_blank" alt="GitHub"
class="text-xl icon-btn opacity-50 !border-none !hover:text-white">
<carbon-logo-github />
</a>
</div>
<!--
在页尾注释的文字是备注,不是注释!
-->
---
# 这是第二页标题
这是普通文本内容
* 这是无序列表
1. 这是有序列表
|
修改单页的布局 ●
页面布局一般有两种:一整页、左右分割两部分。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<!-- 左右分割布局格式,如下 -->
---
layout: two-cols
---
<template v-slot:default>
# 左半页标题
这是左半页内容
![插入图片1](https://o2ospring.github.io/android-chrome-192x192.png)
</template>
<template v-slot:right>
# 右半页标题
这是右半页内容
![插入图片2](https://o2ospring.github.io/about/o2ospring_blog.png)
</template>
|
代码块及扩展 ●
除了能对代码进行配色,还可以支持高亮动画显示。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<!-- 代码块及扩展,其中{all|2|1-3|all}为扩展语法,表示分四步高亮显示:全部、第2行、第1-3行、全部代码,如下 -->
`` `json {all|2|1-3|all}
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
`` `
|
显示动画语法 ●
显示主要包括显示顺序、显示动画。关于几个不同的显示顺序语法,不建议同一页面使用多个不同语法,否则显示顺序可能错乱!
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<!-- 针对行内容的显示顺序,如下 -->
<div v-click="3">111 此行内容最后显示</div>
<div v-click="2">222 此行内容次之显示</div>
<div v-click="2">222 此行内容次之显示</div>
<div v-click="1">333 此行内容最先显示</div>
<!-- 针对列表项的显示顺序,如下 -->
<v-clicks>
- 无序列表内容一;//点一步显示下一项列表(注意:列表动画扩展语法需要空行隔开↑)
- 无序列表内容二。//点一步显示下一项列表(注意:列表动画扩展语法需要空行隔开↓)
</v-clicks>
|
插入图标或图片 ●
你可以通过 Icônes 来浏览访问所有可用的图标,每个图标都有自己的标识符。例如:小火箭的标识符为uim-rocket
。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<!-- 在文本中插入图标(小火箭),如下 -->
<uim-rocket />
<!-- 改图标(小火箭)大小及颜色,如下 -->
<uim-rocket class="text-3xl text-red-400 mx-2" />
<!-- 改图标(小火箭)大小及颜色,并加入动效,如下 -->
<uim-rocket class="text-3xl text-orange-400 animate-ping" />
<!-- 默认模式插入本地图片,如下 -->
![Remote Image](./img/android-chrome-192x192.png)
<!-- 指定相对位置及大小插入图片,如下 -->
<!-- `m-10`相对位置,`h-20`大小(50:貌似一比一),`rounded shadow`表示圆角阴影 -->
<img src="./img/android-chrome-192x192.png" class="m-10 h-20 rounded shadow" />
|
其它应用功能 ●
除了上面介绍的功能外,还有数学公式(LaTeX)、图表(Mermaid)、网页组件等,具体请到官网【开始使用】了解。
3、PPT 网页构建与发布
Slidev 构建的静态网页存放到dist/
文件夹里,将其里面的所有文件托管到 GitHub Pages 上即可。事前需要在 GitHub 创建仓库,并将仓库配置为网页模式(静态站点服务)。
1、创建远程仓库及网页配置:图示
2、构建静态网页并上传仓库:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
######初次发布######
slidev build --base test_ppt #【构建】静态网站网页(存到 dist 文件夹)(注意:test_ppt 是 GitHub 的仓库名称,也就是主页相对路径)
cd dist #【进入】"dist"目录,为建git本地仓库准备
git init #【创建+初始化】Git本地仓库
git add . #【添加】工作区所有文件到【暂存区】
git commit -m "first commit" #【提交】暂存区所有文件到【本地库】
#【关联】github远程仓库(使用HTTP协议方式)(使用仓库默认名称:origin)
git remote add origin https://github.com/o2ospring/test_ppt.git
git push -u origin master #【推送】本地仓库到【远程仓库】(仓库默认名称:origin)(之后提示输入仓库托管网站账号和token密码)
# -u 刚创建这个远程仓库时首次push才加此选项。
######之后发布######
slidev build --base test_ppt #【构建】静态网站网页(存到 dist 文件夹)(注意:test_ppt 是 GitHub 的仓库名称,也就是主页相对路径)
cd dist #【进入】"dist"目录。
git add . #【添加】工作区所有文件到【暂存区】
git commit --amend --no-edit #【提交】暂存区所有文件到【本地库】(更新PPT但不用版本管理)
git push -f origin master #【推送】本地仓库到【远程仓库】(强制推送,因为版本没有更新)
|
3、PPT 一般只作为博客的一篇文章,建议你先搭建个人博客,具体操作请参考:《博客生成工具 Hugo》,以及参考其【4、Hugo 的发布】了解更多网页发布知识。