원클릭으로
revealjs-init
sphinx-revealjs によるスライド専用プロジェクトを初期化するスキル。docs/ が未作成のプロジェクトで発表スライドの新規作成を求められたときに使用する。依存追加・MyST テンプレート生成・テーマ選定・Makefile 整備までを行う。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
sphinx-revealjs によるスライド専用プロジェクトを初期化するスキル。docs/ が未作成のプロジェクトで発表スライドの新規作成を求められたときに使用する。依存追加・MyST テンプレート生成・テーマ選定・Makefile 整備までを行う。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | revealjs-init |
| description | sphinx-revealjs によるスライド専用プロジェクトを初期化するスキル。docs/ が未作成のプロジェクトで発表スライドの新規作成を求められたときに使用する。依存追加・MyST テンプレート生成・テーマ選定・Makefile 整備までを行う。 |
| license | MIT |
| allowed-tools | Bash, Read, Write, Edit, WebFetch |
本スキルは「1発表 = 1リポジトリ、docs/ = スライド」の専用構成を対象とする。既存 Sphinx ドキュメントとの共存 (slides/ 等の別ディレクトリ追加) は範囲外。
検出優先順位 (該当した時点で確定):
| 優先 | 判定条件 | 採用 |
|---|---|---|
| 1 | uv.lock が存在 | uv |
| 2 | poetry.lock が存在 | poetry |
| 3 | Pipfile.lock が存在 | pipenv |
| 4 | .venv/ のみ存在 (lockfile なし) | plain venv |
| 5 | 上記すべて該当しない | ユーザー問い合わせ (推奨: uv) |
実行コマンド対応表:
| 操作 | uv | poetry | pipenv | plain venv |
|---|---|---|---|---|
| 依存追加 (docs グループ) | uv add <pkg> --group docs | poetry add --group docs <pkg> | pipenv install --dev <pkg> | pyproject.toml 手動編集 + pip install -e ".[docs]" |
| サブコマンド実行 | uv run <cmd> | poetry run <cmd> | pipenv run <cmd> | venv 有効化後 <cmd> |
| ビルド | uv run make -C docs <target> | poetry run make -C docs <target> | pipenv run make -C docs <target> | source .venv/bin/activate && make -C docs <target> |
エラー伝播ポリシー: 検出した PM のコマンドが PATH に無ければ例外送出 + インストール手順提示。デフォルト値による継続処理は禁止。
docs/ が存在しないリポジトリで sphinx-revealjs 関連の質問を受けた場合pyproject.toml 存在確認 — 不在なら PM ごとの初期化案内 (uv: uv init / poetry: poetry init / pipenv: pipenv install / venv: python -m venv .venv)docs/ が既に存在する場合は停止し、「本スキルはスライド専用プロジェクトを対象とする。既存ドキュメントとの共存は範囲外」と報告する。docs/ の削除・上書き等の暗黙処理は行わない検出された PM のコマンドで docs グループに追加 (uv 例、PM ごとに動的書き換え):
uv add sphinx sphinx-revealjs myst-parser sphinx-autobuild --group docs
PROJECT_NAME: pyproject.toml の project.name → 不在時 basename $PWDAUTHOR_NAME: pyproject.toml の authors[0].name → git config --get user.name → $USERuv run sphinx-quickstart -q -p "$PROJECT_NAME" -a "$AUTHOR_NAME" ./docs
生成された docs/index.rst は削除する (手順7でスライド雛形 index.md に置き換え)。
組み込みテーマを選択式で提示 (デフォルト: black):
| テーマ | 特徴 |
|---|---|
| black (デフォルト) | 黒背景・白文字 |
| white | 白背景・黒文字 |
| league | グレー背景 |
| beige | ベージュ背景 |
| night | 黒背景・太字見出し |
| serif | セリフ体 |
| simple | 白背景・ミニマル |
| solarized | Solarized Light 配色 |
| moon | 濃紺背景 |
| blood | 黒背景・赤アクセント |
| sky | 水色グラデーション |
選択値は手順8で revealjs_style_theme に反映する。
| オプション | 用途 | 選択時の処理 |
|---|---|---|
sphinx-oceanid | Mermaid 図 | uv add sphinx-oceanid --group docs + extensions へ sphinx_oceanid + _static/oceanid-revealjs.css 生成 + revealjs_css_files へ追加 + mermaid-diagram 外部スキルの案内 |
| SCSS カスタムテーマ | テーマ自作 | extensions へ sphinx_revealjs.ext.sass + _sass/custom.scss 雛形生成 + sass 関連設定 (下記)。コンパイラ (dart-sass) は初回ビルド時に自動ダウンロードされるため要ネットワーク、追加の Python 依存は不要 |
オプション提示時に、SCSS 非選択の場合はテーブル中央寄せ対処の _static/table-center.css を自動生成する旨も合わせて伝える (選択式ではなく既定の対処。SCSS 選択時は custom.scss 内の規則が同じ役割を担う)。
以下の生成ファイルに埋め込む値 (max-height、padding、pre 幅、テーブル中央寄せ) は revealjs-config の推奨値の複製。変更する際は両スキルを同時に更新する。
sphinx-oceanid 選択時に生成する docs/_static/oceanid-revealjs.css (縦長ダイアグラムのはみ出し対策):
/* Constrain sphinx-oceanid diagrams within Reveal.js slides */
.reveal .slides .oceanid-diagram .oceanid-svg-container svg {
max-height: 500px;
}
SCSS 非選択時に生成する docs/_static/table-center.css (同梱 reveal.css がテーマより詳細度の高い規則でテーブルを左寄せにするため。根拠は revealjs-config の「テーブルの中央寄せ」参照):
/* Center tables within Reveal.js slides */
.reveal .slides section table {
margin-left: auto;
margin-right: auto;
}
SCSS 選択時に生成する docs/_sass/custom.scss:
// Reveal.js カスタムテーマ雛形
@import "template/mixins";
@import "template/settings";
// テーマ変数の上書きはここに書く
// (変数一覧は Reveal.js の css/theme/template/settings.scss を参照)
// $mainFontSize: 36px;
// $backgroundColor: #fdf6e3;
@import "template/theme";
// コンテンツ領域の最大化
.reveal {
.slides section {
padding: 10px;
}
pre {
width: 100%;
margin-left: 0;
margin-right: 0;
box-sizing: border-box;
}
// 同梱 reveal.css がテーマより詳細度の高い規則でテーブルを左寄せにするため中央に戻す
.slides section table {
margin-left: auto;
margin-right: auto;
}
}
SCSS 選択時の追加設定 (手順8に合流):
revealjs_sass_src_dir = "_sass"
revealjs_sass_out_dir = "_static"
revealjs_sass_auto_targets = True
revealjs_style_theme = "custom.css" # 手順5の選択より優先
発表タイトル・イベント名・発表日をユーザーに確認し、docs/index.md を生成する ({{ }} は確認した値で置換):
# {{ 発表タイトル }}
- {{ イベント名 }}
- {{ 発表日 }}
- {{ AUTHOR_NAME }}
## はじめに
### 自己紹介
- 名前
- 所属
## 本編
### スライドの書き方
- `##` がセクション区切り、`###` が個別スライドになる
- 1スライド1トピックで書く
- 詳細な記法ルールは `revealjs-authoring` スキルが提供する
以下を渡して委譲する (設定値の根拠・落とし穴は revealjs-config スキル参照):
extensions = [
"myst_parser",
"sphinx_revealjs",
# sphinx-oceanid 選択時: "sphinx_oceanid"
# SCSS 選択時: "sphinx_revealjs.ext.sass"
]
myst_enable_extensions = ["colon_fence", "deflist", "tasklist"]
revealjs_style_theme = "black" # 手順5の選択値
revealjs_static_path = ["_static"]
revealjs_script_conf = {
"width": 1200,
"height": 700,
"slideNumber": "c/t",
"hash": True,
}
revealjs_css_files = [
"revealjs/plugin/highlight/monokai.css",
# sphinx-oceanid 選択時: "oceanid-revealjs.css"
# SCSS 非選択時: "table-center.css"
]
revealjs_script_plugins = [
{
"src": "revealjs/plugin/highlight/highlight.js",
"name": "RevealHighlight",
},
]
sphinx-quickstart 生成の Makefile を以下で置換する:
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = .
BUILDDIR = _build
PORT ?= 8000
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@echo " serve to serve built slides at http://localhost:$(PORT)"
@echo " livehtml to start sphinx-autobuild dev server for slides (PORT=$(PORT))"
.PHONY: help Makefile revealjs serve livehtml
revealjs: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
serve: revealjs
@echo "Serving at http://localhost:$(PORT) - press Ctrl+C to stop"
python -m http.server -d "$(BUILDDIR)/revealjs" $(PORT)
livehtml:
sphinx-autobuild -b revealjs "$(SOURCEDIR)" "$(BUILDDIR)/revealjs" \
--host 0.0.0.0 --port $(PORT) $(SPHINXOPTS) $(O)
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
SPHINXBUILD は sphinx-build のまま (PM 非依存)。PORT=8003 等で上書き可。
uv run make -C docs revealjs
失敗時は明示的エラー伝播で停止 (生成済みファイルの自動削除・自動修正はしない)。成功時は docs/_build/revealjs/index.html を案内し、以後のビルド・プレビューは sphinx-build スキルへ委譲する旨を伝える。
sphinx-config (conf.py 編集の単一ロジック)revealjs-config (sphinx-revealjs 固有設定の根拠と落とし穴)sphinx-build (revealjs ビルド・プレビュー)、revealjs-authoring (スライド執筆時に自動発火)drillan/sphinx-oceanid の mermaid-diagram を別途インストールSphinx ドキュメントの MyST Markdown 執筆支援スキル(ディレクティブ・ロール・相互参照・数式・sphinx-design)。extensions に myst_parser があるプロジェクトで docs/ 配下の .md を編集・作成するときや、MyST 記法について質問されたときに使用する。
sphinx-revealjs のスライドを MyST で書くための記法ルール(見出しレベルによるスライド分割、list-table、2 カラムレイアウト等)。extensions に sphinx_revealjs があるプロジェクトで docs/ 配下の .md を編集・作成するときに使用する。汎用 MyST 記法は myst-authoring が担当。
sphinx-revealjs の conf.py 設定(プラグイン・コードハイライト・テーマ・スライド寸法・表の中央寄せ・Mermaid 統合)の知識を提供するスキル。sphinx-revealjs プロジェクトでスライドの見た目や挙動を変更・修正するときに使用する。conf.py 編集の実行は sphinx-config に委譲する。
既存の reStructuredText 製 Sphinx ドキュメントを rst-to-myst で MyST Markdown へ移行するスキル。実質的な RST コンテンツを持つプロジェクトの移行を求められたときに使用する(sphinx-quickstart の雛形だけの場合は対象外)。変換結果を検証してから元ファイルを削除する。
Sphinx ドキュメント・スライドを Makefile 経由でビルドするスキル(HTML・latexpdfja・EPUB・linkcheck・livehtml・revealjs)。ドキュメントやスライドのビルド・プレビュー・開発サーバー起動・リンクチェックを求められたときに使用する。パッケージマネージャ検出とビルドエラーの解釈は本文参照。
docs/conf.py を既存設定を保ちながら安全に更新するスキル。Sphinx 拡張の追加・削除、テーマ、プロジェクトメタデータなど conf.py の変更を求められたときに使用する。