はじめに
Slidev(スライデヴ)は、ブラウザで動作するプレゼンツールで、Markdownにより記述する。
使い方
$ npm init slidev
Need to install the following packages:
create-slidev@52.1.0
Ok to proceed? (y)
> npx
> create-slidev
●■▲
Slidev Creator v52.1.0
✔ Project name: … test
Scaffolding project in test ...
Done.
✔ Install and start it now? … yes
✔ Choose the package manager › npm
...
ブラウザが起動してデモが表示される。
一旦閉じたあと、再度起動するには、npm run devとする。
スライドの作り方
slides.mdを編集する。
スライド
---から---のあいだは設定で、YAMLとして解釈される。
---
# You can also start simply with 'default'
theme: seriph
# random image from a curated Unsplash collection by Anthony
# like them? see https://unsplash.com/collections/94734566/slidev
background: https://cover.sli.dev
# some information about your slides (markdown enabled)
title: Welcome to Slidev
...
---
これはスライドの区切りになっている。設定と内容が1セットになっており、これを繰り返す。最初だけテーマとか色々書く。設定部分に日本語を入れると動作がおかしくなることがあるので、日本語を入れるのはやめておいたほうがよさそうである。
なお、コメントはHTML形式<!-- ... -->で入れる。HTMLタグも有効。
特に設定がなければ、区切りは---だけでもよい。
<!-- タイトル -->
# Slidevの使い方
penguin
---
# 遷移の種類
- fade - Crossfade in/out
- fade-out - Fade out and then fade in
- slide-left - Slides to the left (slide to right when going backward)
- slide-right - Slides to the right (slide to left when going backward)
- slide-up - Slides to the top (slide to bottom when going backward)
スライドの遷移
スライドの遷移の設定は、以下のようにする。
遷移の種類としては、確認できたものとして以下のものがある(参考)。
- fade - Crossfade in/out
- fade-out - Fade out and then fade in
- slide-left - Slides to the left (slide to right when going backward)
- slide-right - Slides to the right (slide to left when going backward)
- slide-up - Slides to the top (slide to bottom when going backward)
目次
目次を入れるには、次のようにする。
<Toc minDepth="1" maxDepth="1" />
スライドには深さがあって、levelで設定する。
スライドのレベルを2に設定すると、前のスライドのレベルが設定されていない場合、このスライドは前のスライドのサブになる。このとき、目次の深さを1に設定していると、このスライドは項目として出てこない。
レイアウト
2列で表示
レイアウトを2列にするには、次のようにする。
---
layout: two-cols
layoutClass: gap-16
---
折り返しは、::right::で設定する。
# レイアウト
2つにわける。
::right::
右側
右に図を表示
2列にわけて、右に図を表示するには、次のようにする。
---
layout: image-right
image: https://cover.sli.dev
---
左に図を表示
2列にわけて、左に図を表示するには、次のようにする。
---
layout: image-left
image: https://cover.sli.dev
--
図を表示
図を真ん中に表示するには、次のようにする。
---
layout: image
image: https://cover.sli.dev
backgroundSize: 90% 90%
---
文字を入れると、図に重なる。
中央に表示
中央に表示するには、次のようにする。
---
layout: center
#class: text-center
---
何もかも中央揃えにしたければ、class: text-centerを指定する。
引用を表示
ありがたいお言葉を紹介したい場合。
セクション
セクション区切り。
---
layout: section
level: 2
---
終わり
終わり。
アニメーション
アニメーションさせるには、次のようにする。
<div v-click>スライドを進めると出てくる</div>
最初は何も表示されなくて、スライドを進めると文字が出てくる。前のと一緒に出てくるように指示することもできる。
<div v-click>これのあとに</div>
<div v-after>これも出てくる</div>
逆に隠すということもできる。
<div v-click.hide>スライドを進めると消えちゃう</div>
リストなど、1つずつ設定するのがめんどくさいものは、以下のようにするとまとめて設定できる。
<v-clicks depth=2>
- item 1
- item 1.1
- item 2
</v-clicks>
ここで、depthはどこまでの深さまで個別にやるかの指定である。
アンダーラインを引く強調表示。
<span v-mark.underline.red>ここを強調する</span>
ぐるぐる囲む強調表示。
<span v-mark.circle.orange>ここを強調する</span>
数式
数式が書ける。
インラインの数式は$E = mc^2$というように書く。
$$
\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
$$
図
Mermaidで図が描ける。コードブロックのように書くが、コードブロックではない。
```mermaid {scale: 0.5}
flowchart TD
A[にゃんこが起きる] --> B{お腹が空いているか?}
B -->|はい| C[ごはんを食べる]
B -->|いいえ| D[遊ぶ]
C --> E[お腹が満たされる]
D --> F[おもちゃで遊ぶ]
E --> G[お昼寝する]
F --> G
```
```mermaid {scale: 0.5}
sequenceDiagram
participant にゃんこ
participant 飼い主
にゃんこ->>飼い主: 朝に鳴く
飼い主->>にゃんこ: ごはんをあげる
にゃんこ->>にゃんこ: ごはんを食べる
にゃんこ->>飼い主: お腹が満たされる
にゃんこ->>にゃんこ: お昼寝する
にゃんこ->>飼い主: 夕方に遊ぶ
にゃんこ->>にゃんこ: 夜に寝る
```
```mermaid {scale: 0.5}
classDiagram
class にゃんこ {
+名前: string
+好きな場所: string[]
+遊ぶ(): void
}
class 箱 {
+大きさ: string
+中身: string
}
class ソファ {
+柔らかさ: string
}
にゃんこ --> 箱: 好きな場所
にゃんこ --> ソファ: 好きな場所
```
図を3つ横に並べたいなどの場合は、次のようにする。
<div grid="~ cols-3 gap-2" m="t-2">
<!-- ここに図を置く -->
</div>
cols-3で列の個数を指定している。
テーマ
全体のデザインのテーマは、最初の設定の中で指定する。
---
theme: default
#theme: seriph
---
他にもある。ローカルにないものを指定すると、インストールするかどうかコマンドラインのほうで聞かれる。
サンプル
書き出し
前準備
$ npm i -D playwright-chromium
PDFとして書き出すなら、以下のようにする。
slides-export.pdfが書き出される。
PPTXとして書き出すなら、以下のようにする。
$ npx slidev export --format pptx
.../node_modules/pptxgenjs/dist/pptxgen.es.js:2
import JSZip from 'jszip';
^^^^^^
SyntaxError: Cannot use import statement outside a module
node_modules/pptxgenjs/package.jsonに"type": "module",を追加した。
{
"name": "pptxgenjs",
"type": "module",
うまくいけばslides-export.pptxが書き出される。ただし、編集はできないようである。
|