🍤
Markdownでスライドを作成できる Slidev をさくっと始めるためのテンプレート
はじめに
Slidevをさくっとはじめるためのテンプレート
※本テンプレートは便利なコンポーネントが含まれているわけではありません。あくまで Slidevを始めるための環境を整えたものです。
テンプレート
テンプレートの中身紹介
ディレクトリ構成 (一部省略)
🍤
├── ReAdMe.md
├── components
│ └── Counter.vue
├── package.json
├── pages
│ ├── a
│ │ ├── a.md
│ │ ├── alphabet.md
│ │ ├── b.md
│ │ └── c.md
│ └── b
│ ├── a
│ │ ├── a.md
│ │ ├── alphabet.md
│ │ ├── b.md
│ │ └── c.md
│ ├── alphabet.md
│ ├── b
│ │ ├── a.md
│ │ ├── alphabet.md
│ │ ├── b.md
│ │ └── c.md
│ └── c
│ ├── a.md
│ ├── alphabet.md
│ ├── b.md
│ └── c.md
├── pnpm-lock.yaml
└── slides.md
基本的にSlidev
では、slides.md
が読み込まれる仕様になっているため、普通に作業しているとslides.md
が肥大化して作業しづらくなります。
なので、Multiple Entriesを使ってコンテンツごとにフォルダを分けました。
また、各コンテンツごとに一つのファイルに内容を集約して、最終的にslides.md
がよりすっきりなるようにしました。(TypescriptでいうところのBarrelみたいな)
Git hooks
🍤
format.sh
#!/bin/bash
## Format recursively for .md files
for file in `\find . -name '*.md'`; do
if [[ $file == *"node_modules"* ]] || [[ $file == *"ReAdMe"* ]]; then
:
else
npm run f $file
fi
done
slidev format [enrty]
でファイル名指定に正規表現を使えなかったため(./pages/**/*.md
とかが使えない)、format.shを使って対象のすべての*.md
ファイルにフォーマットが走るようにしました。
Github Actions
🍤
export.yml
name: Export a pdf file
on:
push:
branches:
- main
jobs:
export-pdf:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "14"
- name: Install dependencies
run: yarn
- name: Format
run: yarn f
- name: Build
run: yarn b
- name: Export
run: yarn e
- name: Set current datetime
env:
TZ: "Europe/London"
run: echo "CURRENT_DATETIME=$(date +'%Y%m%d')" >> $GITHUB_ENV
- uses: upload-artifact@v2
with:
name: ${{ env.CURRENT_DATETIME }}_slidev
path: ./slides-export.pdf
upload-artifact
を使用して、以下のようにpdfファイル(を圧縮したzipファイル)を出力するようにしました。
Discussion