2024-11-03
HPにスライドを埋め込む方法を習得したので残しておく。
スライドを埋め込んだページはこちら。
なぜスライドを埋め込みたいのか
- プレゼンテーションの内容をHPに残しておきたい。流用したい。
- ホームページが縦に長くなるのを防ぎたい。
- 括弧いい。アニメーションを入れられる。
直接リンクを張るのではだめ?
- リンク先に飛ばないと内容が見れない。
- 読み終わった後にもどるのが面倒。
Reveal.jsを使ってスライドを作る。
Quartoを使うと簡単にReveal.jsのスライドを作れる。
slide.qmd
というファイルをstatic
というディレクトリの中に作り、以下のように書く。 controls: true
を指定することで、埋め込んだときにスライドのページ移動がマウス操作でできるようになるのでおすすめ。
---
title: "Habits"
author: "John Doe"
format:
revealjs:
controls: true
---
## Getting up
- Turn off alarm
- Get out of bed
## Going to sleep
- Get in bed
- Count sheep
cd /path/to/static
して、 quarto render slide.qmd
を実行すると、slide.html
が生成される。 このリンクを別のページに埋め込むことで、スライドを表示できる。
スライドを埋め込む
LLMに聞いたらこんな感じでHTMLを書くことで埋め込めると教えてくれた。
<!DOCTYPE html>
<html>
<head>
<style>
.presentation-container {
position: relative;
width: 100%;
max-width: 1200px;
margin: 0 auto;
padding: 20px;
}
.responsive-iframe {
position: relative;
width: 100%;
padding-bottom: 56.25%; /* 16:9 アスペクト比 */
height: 0;
overflow: hidden;
background: #f5f5f5;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.responsive-iframe iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: none;
}
.presentation-title {
font-size: 24px;
margin-bottom: 16px;
color: #333;
}
</style>
</head>
<body>
<div class="presentation-container">
<div class="responsive-iframe">
<iframe src="/path/to/static/slide.html" allowfullscreen></iframe>
</div>
</div>
</body>
</html>
/path/to/static/slide.html
の部分を生成されたslide.html
のパスに変更することで、スライドを埋め込むことができる。
GitHub Actionsで自動ビルド
他のHTMLをビルドする前に、quarto-cli
をインストールしてsilde.html
を生成しておくようにworkflowを設定する。
- name: get quarto-cli via pipx
run: |
sudo apt-get update -y
sudo apt-get install -y pipx pandoc
pipx install quarto-cli
- name: render by quarto
run: |
cd /path/to/static
quarto render slide.qmd
cd -
/path/to/static/slide_files
にReveal.jsの様々なファイルが生成されてこれをgitで差分管理するのは嫌なので、.gitignore
に追加しておく。
# Reveal.js
slide_files/
おしまい