バグフィックスしつつ、サイト基盤の整理をしてた週

2022/04/25-2022/05/1あたりの振り返り。

sphinx-revealjs 1.5.2

Zennでこの記事 を書いたタイミング以降 dirhtml ビルドを使っているのもあって、 sphinx-revealjsにもv1.5.2で dirrevealjs という派生ビルダーを用意するようにした。 が、どうも実装上の問題があっていくつかディレクティブが機能しなくなっていた模様。

改修ついでに、v2で機能ドロップする分に対する非推奨メッセージをWARNINGに変更。 基本的にはv1系での機能追加はもうしないつもりではある。

サイト移行 2022.beta1

「GWぐらいまでにやろうリスト」にあったこれを前半のうちに実施。

構成まわり

Sphinx+ablogがベースであること自体は変わらないけれど、 mixed-builderを使いつつ「同じビルドでReveal.jsプレゼンテーションも生成」を実現してある。

:ページとしては、 attakeiの自己紹介 がそれ。 (戻るのがちょっと手間なので、別タブでのアクセスを推奨)

Updated on 2022-12-25

https://github.com/attakei/slides に統合することにしたので、 https://attakei.net 内での統合は取りやめた。

いくつかのスライドは合流が間に合っていないが、 Speaker DeckにPDF版を置いてあるのでギリギリなんとかなっている。

ホスティング

細かいオーケストレーションを切り離せそうだったので、 この機会にFirebaseからCloudfare Pagesに切り替えてみてる。

ビルドパイプラインまわりはシンプルになったのはいいのだけれど、 ビルド環境のPythonバージョンが少ないのが悩みどころ。 [1] 一応、ここさえ我慢できればシンプル+警戒なビルドにスイッチできたので、ギリギリ満足といったところ。

この手の構成だと「オリジン相当のホスト名でのリクエスト」をどう防ぐかが課題になるのだが、 しょうがないのでJSでリダイレクトさせてる。 (robots.txtなどへの対応はひとまず先送り)

Sphinx拡張の更新

実質サイト移行が要因で、手持ちのSphinx拡張を3.7対応してた。

とはいっても大半は pyoroject.toml での記述書き換えで済んでいる。

1箇所だけ lru_cache を使っている箇所があったので、 maxsize=None を追記して動作は変えずにバージョン対応領域を広げた感じ。 [2]

Footnotes

※脚注