当前位置: 首页 > Web前端 > HTML

学过slidev.js的开发者可能会考虑不用ppt?

时间:2023-04-02 18:10:53 HTML

背??景,作为开发人员,每次用PPT或者Word写简历或者求职报告,都非常痛苦。这些应用程序不适合显示代码。但是今天来的家人是有福的。一个名为slidev的库在其官网地址上露出了坏坏的笑容。Slidev(slide+dev,/sl??d?v/)是一个基于网络的幻灯片创建和演示工具。它旨在让开发人员专注于用Markdown编写内容,同时具有支持HTML和Vue组件的能力,并且可以呈现像素完美的布局,并且还在您的演示文稿中内置了交互式演示示例。下面直接上动图吧:其实官网已经很完整了,但是之所以写这篇文章是因为官网的一些写法其实是有bug的,很多官网都是有代码没有效果图的,而且官方文档写的顺序有点不友好,看得有点晕。1.安装npminitslidev可以认为是用create-react-app:yarndev创建一个react项目2.模块分页和动画slidev每页按比例缩放,每页不能滚动,所以每页的内容页数有限。这点需要注意:slidev有点奇怪,项目启动后默认使用外层的slidev.md作为解析的入口文件:我们可以先清空slidev.md文件的内容,因为在官网的例子,几乎所有的页面代码都写在这里,显得乱七八糟写代码很容易跑来跑去,所以这里建议先学习如何划分页面模块:---src:./pages/1:Homepage.md------src:./pages/2:CodeDisplay.md------src:./pages/3:Picture.md---在里面添加一个md文件pages文件夹中的在slidev的语法中,“---”通常会包裹一些全局设置,如果你单独写“---”类似于“”标签的样式,但是注意这里有个bug:---#---src:./pages/1:Homepage.md---上面的代码直接导致页面崩溃,因为即使是被注释掉的“---”仍然会被误读,我们不会当我们在评论中写其他文字时会报错,这里要注意!!这时候我们可以点击下方的方向键进行页面切换,或者使用键盘上的左右键进行切换。我们增加页面切换的动画,比如在首页.md中添加如下代码,表示当前页面在下一页之上:---transition:slide-up---#我是首页page第一页的默认布局上下居中,我们给第一页设置一个背景图案:---transition:slide-upbackground:https://source.unsplash.com/collection/94734566/1920x1080---#我是首页这里是背景图片的url由官网提供。图片是随机的,每时每刻都不同。设置背景后的效果:3.代码高亮步骤这里我说一下对于开发者来说非常重要的能力,代码展示和渐进高亮,我以快速排序的代码为例:{2-4|6|7|all}表示将代码分成4段,前2~4行高亮,以此类推,最后全部高亮,但要注意{2-4|6|7|all}如果这里只多写了一个空格,那么这条语句就不会生效。可以看到每点击next按钮,显示状态会依次切换,url会拼接clicks=n,其中n为当前页面点击next的次数,而slidev文档中提到的点击事件都是点击url的变化,而不是真正点击某个元素。我们只需要添加{monaco}就可以让代码可以修改了:我们也可以贴出一些链接,和Markdown一样的写法:[代码地址](https://segmentfault.com/u/lulu_up)4.图片华丽ppt当然离不开图片了。之前我们写了背景图片,这里需要写图片标签和图片布局:img标签可以控制图片的样式h-40的高度为40,类名遵循WindiCSS规范设置布局的背景图片---layout:image-leftimage:https://source.unsplash.com/collection/94734566/1920x1080---#我是图片---layout:image-rightimage:https://source.unsplash.com/collection/94734566/1920x1080---#我是图片5.columnlayout当我们要左右显示内容时,需要在页面头部设置:---layout:two-cols---#当然是左边布局thecontent#正确的layout当然是content这里值得注意的是这里没有layout:three-cols这个名字,目前只有两列布局和标签写入一些其他内容会导致错误。例如,写#我是标题会导致白屏。下面是错误的写法:---layout:two-cols---#我是标题#leftThelayoutcoursethecontent#正确的布局当然是内容六、动效这里说的动效是指元素的动效,下面演示元素的位置变化动画:哥哥来了

我们可以看到当我在项目中左右移动切换时,动画效果会消失,因为元素一旦执行完动画效果就会被缓存,那么我们可以主动请求不缓存:---preload:false---逐渐显示有些元素需要每次都点击才能出现主题1
Theme2
Theme3
这里有bug是的,如果主题2设置了animation属性,但是动画不能执行,禁止预加载也是无效的,因为默认进入页面后会立即执行一次。目前,还没有找到简单的解决方案。也可以设置只有当url为clicks=n时才显示,比如题目2的解释就是只有当url为clicks=2时才显示:主题1
主题2
主题3
主题1的讲解主题2的讲解主题3的讲解这里还是有bug,v-click会被计入next事件,上面的代码会变成点击next6次翻到下一页,所以针对这个bug,我们需要限制当前页面点击nextatmostntimes:---transition:slide-uppreload:falseclicks:3#这里是关键!---这时候在这个页面点击next3次以上翻页。7.流程图slidev的流程图处理集成了mermaid.js(美人鱼),这里简单演示一下基本用法:graphLRA[square]B(roundedrectangle)C((circle))D{diamond}A->B-->C-->D图TDB[张三]-->C{李四}C-->|吃西瓜|D[腹泻]C-->|喝冰水|D[拉肚子]D-->F(瘦)C-->|一起学习|提供各种小功能:画笔有一个问题‖‖‖,就是画笔画出的线条会一直保留。保留每一页其实并不舒服,所以请酌情使用。演讲模式与PPT演示模式类似,这里将视角分为“演讲者”和“听众”,“听众视角”会随着“演讲者”的变化而变化:在末尾写注释。阅读器模式:---transition:slide-upbackground:https://source.unsplash.com/collection/94734566/1920x1080title:我是主页---#我是主页Speaker:http://localhost:3030/presenter/1Audience:http://localhost:3030/1有个问题,就是右上角的演讲时间是你每次的演讲模式点击它们都会重新计时,所以如果你想退出中间地图再打开,不要关注这个时间。边修改边演示现场demo调用摄像头看直播者听声音:endslidev有很多强大的功能,让人惊喜的是它可以直接使用vue组件,还可以导出工程为PDF等。虽然这些能力很强,它们会使slidev的使用复杂化。目前slidev提供的能力其实已经够用了。这次是这样的。希望与您共同进步。