nikkie-ftnextの日記

イベントレポートや読書メモを発信

sphinx-revealjs製のスライドをGitHub Pagesで公開するためのリポジトリの初期設定

はじめに

ばーい!1 nikkieです。

発表資料を作るのにsphinx-revealjsを愛用しています。
年1ペースで発表資料リポジトリを作っているのですが、先日PHPカンファレンス関西2用のスライドを公開しました。
その中で実施した初期設定を未来の私に伝えるために、ここにまとめます。

目次

sphinx-quickstart

コマンドラインから引数マシマシで渡して、対話的にはあえて使いません

conf.pyにReveal.jsの設定を書く

sphinx-quickstartコマンドでできたconf.pyを編集します。
Reveal.jsの設定値をrevealjs_script_confに書きます。
https://sphinx-revealjs.readthedocs.io/en/stable/configurations/#confval-revealjs_script_conf

設定できる値は以下で確認できます。
https://revealjs.com/config/

参考例です:
https://github.com/ftnext/2024-slides/blob/10399a932b1d77f03a0d4eb8ae76232cea26e355/source/conf.py#L41-L48

revealjs_script_conf = {
    "controls": True,
    "progress": True,
    "history": True,
    "center": True,
    "transition": "none",
    "slideNumber": "c/t",
}

(設定値の解説は1ネタ分くらいになりそうですので、またの機会に)

共通CSSの配置

Reveal.jsではヘッダー(h1,h2,...)のアルファベットが、原稿中の記載によらず大文字になります
これを原稿中の記載のままとするために_static/css/common.cssを配置しています。

CSSの中身はtext-transformの指定です。

.reveal h1,
.reveal h2,
.reveal h3,
.reveal h4,
.reveal h5,
.reveal h6 {
  text-transform: none;
}

テキストをすべて大文字にしたり、すべて小文字にしたり、各単語の先頭を大文字にしたりすることを指定します。

GitHub Actions

スライドをビルドして、GitHub Pagesで公開するためのブランチにpushするActionを自作しています。

現在はこの記事の方法ではpermissionまわりでpushできないエラーが出るので、設定から権限を与えています3
伸びしろはGitHub Actionsの定義ファイルで解決することです。
https://docs.github.com/ja/actions/using-workflows/workflow-syntax-for-github-actions#permissions

OGP設定

OGP(Open Graph protocol)については以下に簡単にあります:
Sphinxはmetaディレクティブだけで、property属性を持ったOGP用のmetaタグがHTMLに作れちゃうんです! - nikkie-ftnextの日記

スライドをシェアするとき、SNSの中のコンテンツのように展開してほしいので設定します(要はカッコつけたいのです)。
Sphinxのテンプレートを使っているのですが、これはまだ書いていないようなので別記事で公開します(TODO:リンクを案内)

OGPの画像はhayasakaで撮影しています。最高の1枚!📸

終わりに

1年に1回作るsphinx-revealjs製スライドの公開リポジトリでやっていることを書き出しました。
2025年のnikkieは、ここを見ればバッチリのはずです!

自作GitHub Actionや自作ライブラリhayasakaなど、発表資料に使うツールも少しずつ整って領域展開できてきたので、当人としては楽しくなってきています。


  1. 言ってない「卑しか女ばい」で知られる
  2. 楽しかったです。ありがとうございました!
  3. ref: GitHub Actionsで自分のリポジトリ操作時に権限不足に起因するエラーが発生する