Slidevで開発者がサクッとスライドを作る

投稿日
Slidevで開発者がサクッとスライドを作る

Slidevはmarkdownで書いた内容がパワポのようなスライド資料になります!

Slidev公式ページより




Slidevの特徴として

  • markdownで記載する
  • レイアウトを組む際はhtml+cssの知識が必要

など、

エンジニアに向けた仕様の印象。


逆にこの辺りの知識さえあれば、

サクッと共有したい資料作りには便利そうに感じたため使ってみました!

検証した環境

1 Slidev 0.35.2

Slidevについて

Slidevはmarkdownで記載した内容をスライド資料にしてくれるnodeのパッケージです。



機能がかなり豊富で今回記載する事もそのうちの一部しか書けてません。

しかも2022/08/06現在まだβ版なのでこれからも機能がドンドン追加されるのでは、という予想です!



出来る事の一覧は公式ページをご参考に

Getting Started | Slidev



メリデメ

メリット

  • markdownに書く事でプレゼン資料が作れる。お手軽!
  • GitHubなどでコード管理が可能
  • テーマが複数の中から選択可能
  • Vueで作ったコンポーネントを使用出来る(!)

デメリット

  • 凝ったレイアウトを行いたい際には、html・cssの知識が必要
  • パワポ・keynoteのようなUI上からの操作は出来ない
  • animationやレイアウトなど、凝った事をしたい際にはkeynoteなどの方がお手軽
  • .pptx形式での書き出しが出来ない

Slidevでスライドを作成してみる

npm init slidevでSlidevを始める環境が作れます

$ npm init slidev
Need to install the following packages:
  create-slidev@0.35.2
Ok to proceed? (y)
 
  ●■▲
  Slidev Creator  v0.35.2
 
? Project name: › slidev-sample



CUIの質問内容に答えていったあと、

yarn run devを実行するとlocalhostが立ち上がります。


これだけできれいですね!✨




自動的に作成されたファイル・フォルダ構成は以下のようになっています

.
├── README.md
├── components
│   └── Counter.vue
├── netlify.toml
├── node_modules
│   ├── @ampproject
・・・
├── package.json
├── slides.md
├── vercel.json
└── yarn.lock

スライドの内容はslides.mdに記載します。

(詳細は後ほど)



また、yarn run buildを実行するとdist/フォルダにhtmlやcssなどの成果物が書き出されます。

「netlify.toml」や「vercel.json」がセットになっているのでweb上への公開も簡単に出来ます!

スライドを作る

スライドの作成はslides.mdを編集する事で行えます

ページを区切る

--- がページの区切りになります

# page 1

ページ1の内容

---

# page 2

ページ2の内容


コードを書く

markdownでコードを記載するように ``` を用います。

# code

```js
// js
function say() {
  const name = 'taro'
  console.log(`hello ${name}`)
}
`` `
codeはシンタックスハイライトが自動でされる


クリック毎にコードをハイライトする事も簡単に出来るようになっています。

言語の指定の後に{all|4|7-13}のように記述をするだけ!


```tsx {all|4|7-13|all}
import { VFC } from 'React'

export type Props = {
  text: string
}

const Sample: VFC<Props> = props => {
  return (
    <div>
      <p>{props.text}</p>
    </div>
  )
}
`` `



テーマを設定する

テーマはFront Matterに設定します

---
# try also 'default' to start simple
theme: bricks
---

テーマをbricksに変更

さきほどまで使っていたseriphというテーマに比べてポップで可愛い ☺️



テーマは公式ページに公開されていて自分で作る事も可能

β版の時点で結構な種類が用意されていてすごい!

Themes Gallery | Slidev





レイアウトを整える

レイアウトを整えるのはcssを用います

Markdown Syntax | Slidev


素のcssを書く事も可能ですし、Windi CSSUno CSSを使う事も可能

# レイアウト
 
<div class="flex">
 
<div class="w-1/2">
左の内容
</div>
 
<div class="w-1/2">
右の内容
</div>
 
</div>
WindiCSSを使ってcssでレイアウトを調整


この部分はUI上直感的な操作が出来るパワポやkeynoteの方に軍配が上がりそうですね



Vueのコンポーネントを使う

Vueのコンポーネントが使えます!

Directory Structure | Slidev


デフォルトでCounter.vueが同梱されているので使ってみると

# Vueのコンポーネントを使う
 
<Counter :count="10" />

Vueのコンポーネントがプレゼン資料で動く、新鮮。笑




コンポーネントを追加する場合はcomponentsフォルダ中に作成

作成後は自動で読み込めるようになります。


slidevはVue3で書かれているので.tsxにも対応しているんですね

Conventions: ./components/*.{vue,js,ts,jsx,tsx,md}

Directory Structure | Slidev より




プロフィールのような頻繁に使うものをサッと読み込む事が出来るのでいいですね!

プロフィール画像
Yuki Takara
都内でフリーランスのエンジニアをやってます。フロントとアプリ開発メインに幅広くやってます。