# 欢迎使用 Slidev
面向开发者的演示文稿工具
按空格键进入下一页
---
transition: fade-out
---
# 什么是 Slidev?
Slidev 是专为开发者设计的演示文稿制作与演示工具,具备以下特性
- 📝 **基于文本** - 专注于内容创作,使用 Markdown 编写,之后再来美化样式
- 🎨 **主题化** - 主题可以作为 npm 包分享和复用
- 🧑💻 **开发者友好** - 代码高亮、支持自动补全的实时编码
- 🤹 **交互式** - 可以嵌入 Vue 组件来增强表现力
- 🎥 **录制** - 内置录制和摄像头视图
- 📤 **便携式** - 可导出为 PDF、PPTX、PNG,甚至可托管的 SPA
- 🛠 **可扩展** - 几乎任何网页上能实现的功能都可以在 Slidev 中实现
了解更多:[为什么选择 Slidev?](https://sli.dev/guide/why)
---
transition: slide-up
level: 2
---
# 导航
悬停在左下角可以查看导航控制面板,[了解更多](https://sli.dev/guide/ui#navigation-bar)
## 键盘快捷键
| | |
| --------------------------------------------------- | --------------------------- |
| → / 空格 | 下一个动画或幻灯片 |
| ← / shift空格 | 上一个动画或幻灯片 |
| ↑ | 上一张幻灯片 |
| ↓ | 下一张幻灯片 |
Here!
---
layout: two-cols
layoutClass: gap-16
---
# 目录
你可以使用 `Toc` 组件为你的幻灯片生成目录:
```html
```
标题将从你的幻灯片内容中推断,你也可以在 frontmatter 中使用 `title` 和 `level` 来覆盖。
::right::
---
layout: image-right
image: https://cover.sli.dev
---
# 代码
使用代码片段可直接获得语法高亮,甚至支持类型悬停提示!
```ts [filename-example.ts] {all|4|6|6-7|9|all} twoslash
// TwoSlash enables TypeScript hover information
// and errors in markdown code blocks
// More at https://shiki.style/packages/twoslash
import { computed, ref } from 'vue'
const count = ref(0)
const doubled = computed(() => count.value * 2)
doubled.value = 2
```
[了解更多](https://sli.dev/features/line-highlighting)
---
level: 2
---
# Shiki Magic Move
由 [shiki-magic-move](https://shiki-magic-move.netlify.app/) 提供支持,Slidev 支持跨多个代码片段的动画。
添加多个代码块,并用 ````md magic-move(四个反引号)包裹它们来启用 magic move。例如:
````md magic-move {lines: true}
```ts {*|2|*}
// step 1
const author = reactive({
name: 'John Doe',
books: [
'Vue 2 - Advanced Guide',
'Vue 3 - Basic Guide',
'Vue 4 - The Mystery'
]
})
```
```ts {*|1-2|3-4|3-4,8}
// step 2
export default {
data() {
return {
author: {
name: 'John Doe',
books: [
'Vue 2 - Advanced Guide',
'Vue 3 - Basic Guide',
'Vue 4 - The Mystery'
]
}
}
}
}
```
```ts
// step 3
export default {
data: () => ({
author: {
name: 'John Doe',
books: [
'Vue 2 - Advanced Guide',
'Vue 3 - Basic Guide',
'Vue 4 - The Mystery'
]
}
})
}
```
非代码块将被忽略。
```vue
```
````
---
# 组件
你可以直接在幻灯片中使用 Vue 组件。
我们提供了一些内置组件,如 `` 和 ``,可以直接使用。添加自定义组件也非常简单。
```html
```
查看[指南](https://sli.dev/builtin/components.html)了解更多。
```html
```
---
class: px-20
---
# 主题
Slidev 拥有强大的主题支持。主题可以提供样式、布局、组件,甚至工具配置。只需在 frontmatter 中**一次编辑**即可切换主题:
```yaml
---
theme: default
---
```
```yaml
---
theme: seriph
---
```
了解更多:[如何使用主题](https://sli.dev/guide/theme-addon#use-theme)和
[精彩主题画廊](https://sli.dev/resources/theme-gallery)。
---
# 点击动画
你可以给元素添加 `v-click` 来添加点击动画。
点击幻灯片时显示此内容:
```html
This shows up when you click the slide.
```
v-mark 指令
还允许你添加
行内标记
,由 [Rough Notation](https://roughnotation.com/) 提供支持:
```html
inline markers
```
[了解更多](https://sli.dev/guide/animations#click-animation)
---
# 运动动画
运动动画由 [@vueuse/motion](https://motion.vueuse.org/) 提供支持,通过 `v-motion` 指令触发。
```html
Slidev
```
[了解更多](https://sli.dev/guide/animations.html#motion)
---
# LaTeX
开箱即用的 LaTeX 支持。由 [KaTeX](https://katex.org/) 提供支持。
行内 $\sqrt{3x-1}+(1+x)^2$
块级
$$ {1|3|all}
\begin{aligned}
\nabla \cdot \vec{E} &= \frac{\rho}{\varepsilon_0} \\
\nabla \cdot \vec{B} &= 0 \\
\nabla \times \vec{E} &= -\frac{\partial\vec{B}}{\partial t} \\
\nabla \times \vec{B} &= \mu_0\vec{J} + \mu_0\varepsilon_0\frac{\partial\vec{E}}{\partial t}
\end{aligned}
$$
[了解更多](https://sli.dev/features/latex)
---
# 图表
你可以直接在 Markdown 中根据文本描述创建图表。
```mermaid {scale: 0.5, alt: 'A simple sequence diagram'}
sequenceDiagram
Alice->John: Hello John, how are you?
Note over Alice,John: A typical interaction
```
```mermaid {theme: 'neutral', scale: 0.8}
graph TD
B[Text] --> C{Decision}
C -->|One| D[Result 1]
C -->|Two| E[Result 2]
```
```mermaid
mindmap
root((mindmap))
Origins
Long history
::icon(fa fa-book)
Popularisation
British popular psychology author Tony Buzan
Research
On effectiveness
and features
On Automatic creation
Uses
Creative techniques
Strategic planning
Argument mapping
Tools
Pen and paper
Mermaid
```
```plantuml {scale: 0.7}
@startuml
package "Some Group" {
HTTP - [First Component]
[Another Component]
}
node "Other Groups" {
FTP - [Second Component]
[First Component] --> FTP
}
cloud {
[Example 1]
}
database "MySql" {
folder "This is my folder" {
[Folder 3]
}
frame "Foo" {
[Frame 4]
}
}
[Another Component] --> [Example 1]
[Example 1] --> [Folder 3]
[Folder 3] --> [Frame 4]
@enduml
```
了解更多:[Mermaid 图表](https://sli.dev/features/mermaid) 和 [PlantUML 图表](https://sli.dev/features/plantuml)
---
foo: bar
dragPos:
square: 691,32,167,_,-16
---
# 可拖拽元素
双击可拖拽元素可以编辑它们的位置。
###### Directive Usage
```md
```
###### Component Usage
```md
Use the `v-drag` component to have a draggable container!
```
Double-click me!
###### Draggable Arrow
```md
```
---
src: ./pages/imported-slides.md
hide: false
---
---
# Monaco 编辑器
Slidev 提供了内置的 Monaco 编辑器支持。
在代码块中添加 `{monaco}` 即可将其转换为编辑器:
```ts {monaco}
import { ref } from 'vue'
import { emptyArray } from './external'
const arr = ref(emptyArray(10))
```
使用 `{monaco-run}` 可以创建一个可直接在幻灯片中执行代码的编辑器:
```ts {monaco-run}
import { version } from 'vue'
import { emptyArray, sayHello } from './external'
sayHello()
console.log(`vue ${version}`)
console.log(emptyArray(10).reduce(fib => [...fib, fib.at(-1)! + fib.at(-2)!], [1, 1]))
```
---
layout: center
class: text-center
---
# 了解更多
[文档](https://sli.dev) · [GitHub](https://github.com/slidevjs/slidev) · [展示案例](https://sli.dev/resources/showcases)