0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何用 Markdown 来做 PPT

数据分析与开发 来源:进击的Coder 作者:崔庆才 2022-03-16 14:10 次阅读

相信绝大多数朋友做 PPT(幻灯片 / Slides / Deck 等各种称呼了)都是用的 PowerPoint 或者 KeyNote 吧?功能是比较强大,但你有没有遇到过这样的痛点:

各种标题、段落的格式不统一,比如字体大小、行间距等等各个页面不太一样,然后得用格式刷来挨个刷一下。

想给 PPT 做版本控制,然后就保存了各种复制版本,比如“一版”、“二版”、“终版”、“最终版”、“最终不改版”、“最终稳定不改版”等等,想必大家都见过类似这样的场景吧。

想插入代码,但是插入之后发现格式全乱了或者高亮全没了,然后不得不截图插入进去。

想插入个公式,然后发现 PPT、Keynote 对 Latex 兼容不太好或者配置稍微麻烦,就只能自己重新敲一遍或者贴截图。

想插入一个酷炫的交互组件,比如嵌入一个微博的网页页面实时访问、插入一个可以交互的组件、插入一个音乐播放器组件,原生的 PPT 功能几乎都不支持,这全得依赖于 PowerPoint 或者 KeyNote 来支持才行。

如果你遇到这些痛点,那请你一定要看下去。如果你没有遇到,那也请你看下去吧(拜托。

好,说回正题,我列举了那么多痛点,那这些痛点咋解决呢?

能!甚至解决方案更加轻量级,那就是用 Markdown 来做 PPT!

你试过用 Markdown 写 PPT 吗?没有吧,试试吧,试过之后你就发现上面的功能简直易如反掌。

具体怎么实现呢?

接下来,就有请今天的主角登场了!它就是 Slidev。

什么是 Slidev?

简而言之,Slidev 就是可以让我们用 Markdown 写 PPT 的工具库,基于 Node.js、Vue.js 开发。

利用它我们可以简单地把 Markdown 转化成 PPT,而且它可以支持各种好看的主题、代码高亮、公式、流程图、自定义的网页交互组件,还可以方便地导出成 pdf 或者直接部署成一个网页使用。

官方主页:https://sli.dev/

GitHub:https://github.com/slidevjs/slidev

安装和启动

下面我们就来了解下它的基本使用啦。

首先我们需要先安装好 Node.js,推荐 14.x 及以上版本,安装方法见 https://setup.scrape.center/nodejs。

接着,我们就可以使用 npm 这个命令了。

然后我们可以初始化一个仓库,运行命令如下:

npminitslidev@latest

这个命令就是初始化一个 Slidev 的仓库,运行之后它会让我们输入和选择一些选项,如图所示:

ea7a4974-a3e6-11ec-952b-dac502259ad0.png

比如上图就是先输入项目文件夹的名称,比如这里我取名叫做 slidevtest。

总之一些选项完成之后,Slidev 会在本地 3000 端口上启动,如图所示:

ea8dcac6-a3e6-11ec-952b-dac502259ad0.png

接着,我们就可以打开浏览器 http://localhost:3000 来查看一个 HelloWorld 版本的 PPT 了,如图所示:

我们可以点击空格进行翻页,第二页展示了一张常规的 PPT 的样式,包括标题、正文、列表等,如图所示:

eac1cc2c-a3e6-11ec-952b-dac502259ad0.png

那这一页的 Markdown 是什么样的呢?其实就是非常常规的 Markdown 文章的写法,内容如下:

#WhatisSlidev?

Slidevisaslidesmakerandpresenterdesignedfordevelopers,consistofthefollowingfeatures

-**Text-based**-focusonthecontentwithMarkdown,andthenstylethemlater
-**Themable**-themecanbesharedandusedwithnpmpackages
-**DeveloperFriendly**-codehighlighting,livecodingwithautocompletion
-**Interactive**-embeddingVuecomponentstoenhanceyourexpressions
-**Recording**-built-inrecordingandcameraview
-**Portable**-exportintoPDF,PNGs,orevenahostableSPA
-**Hackable**-anythingpossibleonawebpage






Readmoreabout[WhySlidev?](https://sli.dev/guide/why)

是不是?我们只需要用同样格式的 Markdown 语法就可以轻松将其转化为 PPT 了。

快捷键操作

再下一页介绍了各种快捷键的操作,这个就很常规了,比如点击空格、上下左右键来进行页面切换,如图所示:

ead01d0e-a3e6-11ec-952b-dac502259ad0.png

更多快捷键的操作可以看这里的说明:https://sli.dev/guide/navigation.html,一些简单的快捷键列举如下:

f:切换全屏

right / space:下一动画或幻灯片

left:上一动画或幻灯片

up:上一张幻灯片

down:下一张幻灯片

o:切换幻灯片总览

d:切换暗黑模式

g:显示“前往...”

代码高亮

接下来就是代码环节了,因为 Markdown 对代码编写非常友好,所以展示自然也不是问题了,比如代码高亮、代码对齐等都是常规操作,如图所示:

eae5140c-a3e6-11ec-952b-dac502259ad0.png

那左边的代码定义就直接这么写就行了:

#Code

Usecodesnippetsandgetthehighlightingdirectly![^1]

```ts{all|2|1-6|9|all}
interfaceUser{
id:number
firstName:string
lastName:string
role:string
}

functionupdateUser(id:number,update:User){
constuser=getUser(id)
constnewUser={...user,...update}
saveUser(id,newUser)
}
```

由于是 Markdown,所以我们可以指定是什么语言,比如 TypeScript、Python 等等。

网页组件

接下来就是非常酷炫的环节了,我们还可以自定义一些网页组件,然后展示出来。

比如我们看下面的一张图。左边就呈现了一个数字计数器,点击左侧数字就会减 1,点击右侧数字就会加 1;另外图的右侧还嵌入了一个组件,这里显示了一个推特的消息,通过一个卡片的形式呈现了出来,不仅仅可以看内容,甚至我们还可以点击下方的喜欢、回复、复制等按钮来进行一些交互。

这些功能在网页里面并不稀奇,但是如果能做到 PPT 里面,那感觉就挺酷的。

eb095330-a3e6-11ec-952b-dac502259ad0.png

那这一页怎么做到的呢?这个其实是引入了一些基于 Vue.js 的组件,本节对应的 Markdown 代码如下:

#Components

YoucanuseVuecomponentsdirectlyinsideyourslides. Wehaveprovidedafewbuilt-incomponentslike``and``thatyoucanusedirectly.Andaddingyourcustomcomponentsisalsosupereasy. ```html ``` Checkout[theguides](https://sli.dev/builtin/components.html)formore.
```html ```

这里我们可以看到,这里引入了 Counter、Tweet 组件,而这个 Counter 就是 Vue.js 的组件,代码如下:


- {{counter}} +

这就是一个标准的基于 Vue.js 3.x 的组件,都是标准的 Vue.js 语法,所以如果我们要添加想要的组件,直接自己写就行了,什么都能实现,只要网页能支持的,统统都能写!

主题定义

当然,一些主题定制也是非常方便的,我们可以在 Markdown 文件直接更改一些配置就好了,比如就把 theme 换个名字,整个主题样式就变了,看如下的对比图:

eb1c83ce-a3e6-11ec-952b-dac502259ad0.png

上面就是一些内置主题,当然我们也可以去官方文档查看一些别人已经写好的主题,见:https://sli.dev/themes/gallery.html。

另外我们自己写主题也是可以的,所有的主题样式都可以通过 CSS 等配置好,想要什么就可以有什么,见:https://sli.dev/themes/write-a-theme.html。

公式和图表

接下来就是一个非常强大实用的功能,公式和图表,支持 Latex、流程图,如图所示:

eb329632-a3e6-11ec-952b-dac502259ad0.pngeb47fb30-a3e6-11ec-952b-dac502259ad0.png

比如上面的 Latex 的源代码就是这样的:

Inline $sqrt{3x-1}+(1+x)^2$

Block
$$
egin{array}{c}


abla 	imes vec{mathbf{B}} -, frac1c, frac{partialvec{mathbf{E}}}{partial t} &
= frac{4pi}{c}vec{mathbf{j}}    
abla cdot vec{mathbf{E}} & = 4 pi 
ho \


abla 	imes vec{mathbf{E}}, +, frac1c, frac{partialvec{mathbf{B}}}{partial t} & = vec{mathbf{0}} \


abla cdot vec{mathbf{B}} & = 0

end{array}
$$

其语法也是和 Latex 一样的。

其背后是怎么实现的呢?其实是因为 Slidev 默认集成了 Katex 这个库,见:https://katex.org/,有了 Katex 的加持,所有公式的显示都不是事。

页面分隔

有的朋友就好奇了,既然是用 Markdown 写 PPT,那么每一页之间是怎么分割的呢?

其实很简单,最常规的,用三条横线分割就好了,比如:

---
layout: cover
---

# 第 1 页

This is the cover page.

---

# 第 2 页

The second page

当然,除了使用三横线,我们还可以使用更丰富的定义模式,可以给每一页制定一些具体信息,就是使用两层三横线。

比如这样:

---
theme: seriph
layout: cover
background: 'https://source.unsplash.com/1600x900/?nature,water'
---

上面这样的配置可以替代三横线,是另一种可以用作页面分隔的写法,借助这种写法我们可以定义更多页面的具体信息。

备注

当然我们肯定也想给 PPT 添加备注,这个也非常简单,通过注释的形式写到 Markdown 源文件就好了:

---
layout: cover
---

# 第 1 页

This is the cover page.

 

这里可以看到其实就是用了注释的特定语法。

演讲者头像

当然还有很多酷炫的功能,比如说,我们在讲 PPT 的时候,可能想同时自己也出镜,Slidev 也可以支持。

因为开的是网页,而网页又有捕捉摄像头的功能,所以最终效果可以是这样子:

eb587898-a3e6-11ec-952b-dac502259ad0.png

是的没错!右下角就是演讲者的个人头像,它被嵌入到了 PPT 中!是不是非常酷!

演讲录制

当然,Slidev 还支持演讲录制功能,因为它背后集成了 WebRTC 和 RecordRTC 的 API,一些录制配置如下所示:

eb7121e0-a3e6-11ec-952b-dac502259ad0.png

所以,演讲过程的录制完全不是问题。

具体的操作可以查看:https://sli.dev/guide/recording.html。

部署

当然用 Slidev 写的 PPT 还可以支持部署,因为这毕竟就是一个网页。

而且部署非常简单和轻量级,因为这就是一些纯静态的 HTML、JavaScript 文件,我们可以轻松把它部署到 GitHub Pages、Netlify 等站点上。

试想这么一个场景:别人在演讲之前还在各种拷贝 PPT,而你打开了一个浏览器直接输入了一个网址,PPT 就出来了,众人惊叹,就问你装不装逼?

版本控制

什么?你想实现版本控制,那再简单不过了。

Markdown 嘛,配合下专业版本管理工具 Git,版本控制再也不是难题。

总结

以上就是对 Slidev 的简单介绍,确实不得不说有些功能真的非常实用,而且我本身特别喜欢 Markdown 和网页开发,所以这个简直对我来说太方便了。

原文标题:用 Markdown 做的 PPT,真的太强了!

文章出处:【微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

审核编辑:彭菁


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 端口
    +关注

    关注

    4

    文章

    956

    浏览量

    32025
  • 代码
    +关注

    关注

    30

    文章

    4762

    浏览量

    68408
  • ppt
    ppt
    +关注

    关注

    1

    文章

    44

    浏览量

    17704
  • MarkDown
    +关注

    关注

    0

    文章

    45

    浏览量

    259

原文标题:用 Markdown 做的 PPT,真的太强了!

文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Markdown写作 + Mermaid绘图

    MarkDown
    橙群微电子
    发布于 :2023年02月24日 09:30:43

    Markdown的基本语法

    工具使用:Markdown基本语法
    发表于 07-01 13:36

    Markdown编辑器功能

    @关于ADAMS学习资料标题欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解
    发表于 08-27 06:26

    如何使用Markdown编辑器

    TI-MSP432-IAR开发环境搭建)欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读
    发表于 01-27 07:10

    详解如何用STM32官方库开发自己的程序

    详解如何用STM32官方库开发自己的程序。
    发表于 07-14 17:47 43次下载

    何用AD电路板边框

    何用AD电路板边框,感兴趣的小伙伴们可以看看。
    发表于 07-26 10:43 0次下载

    何用STM32固件库建立工程

    的固件库建立自己的工程; 5:如何用串口下载程序到 STM32 单片机; 6:如何用 JTAG 下载程序; 7: MDK 的使用技巧。
    发表于 11-11 17:17 29次下载

    Cmd Markdown客户端免费下载

    Cmd Markdown客户端是作业部落推出的Markdown客户端,这次的离线版客户端比较起在线网页版,可以让你在下次没有网络的情况下进行编辑,在不稳定的网络条件下,Cmd Markdown 同样
    发表于 12-12 16:46 11次下载
    Cmd <b class='flag-5'>Markdown</b>客户端免费下载

    HTML To Markdown for PHP将HTML转换为Markdown的库

    ./oschina_soft/html-to-markdown.zip
    发表于 05-23 09:46 0次下载
    HTML To <b class='flag-5'>Markdown</b> for PHP将HTML转换为<b class='flag-5'>Markdown</b>的库

    Markdown Lab快速构建Markdown文档编辑环境

    ./oschina_soft/gitee-markdown-lab.zip
    发表于 05-24 14:19 2次下载
    <b class='flag-5'>Markdown</b> Lab快速构建<b class='flag-5'>Markdown</b>文档编辑环境

    Nim-markdown Nim编写的Markdown解析器

    ./oschina_soft/nim-markdown.zip
    发表于 06-13 09:13 0次下载
    Nim-<b class='flag-5'>markdown</b> Nim编写的<b class='flag-5'>Markdown</b>解析器

    介绍一个很棒的Markdown编辑器UltraEdit

    UltraEdit的Markdown代码高亮显示是专门设计支持Markdown的独特语法的,但却不止于此。
    的头像 发表于 12-05 09:20 1562次阅读

    MarkDown高阶语法手册

    原文链接 更多语法请参见 : MarkDown简明语法公式 MarkDown高阶语法公式 1. 内容目录 在段落中填写[ TOC ]以显示全文内容的目录结构。 [TOC] 2. 标签分类 在编辑区
    的头像 发表于 01-12 10:07 672次阅读

    MarkDown公式指导手册

    MarkDown公式指导手册
    的头像 发表于 01-12 10:29 1278次阅读

    ​什么是终端的PPT

    Python里面有个第三方模块: lookatme,它可以实时解析markdown文件并且立即回显到你已经打开的终端的PPT
    的头像 发表于 03-03 14:37 868次阅读
    ​什么是终端的<b class='flag-5'>PPT</b>