はじめに
一方通行<アクセラレータ>! nikkieです。
ドキュメンテーションツールSphinxには、ひな形となるディレクトリ構造を作ってくれるsphinx-quickstart
コマンドがあり、とても便利です。
私はこれを対話的に使わないという使い方をしています。
目次
- はじめに
- 目次
- 対話的に使えるsphinx-quickstartコマンド
- 行き着いたアプローチ:必要な引数を全部渡すことで、対話をスキップする
- 今回知った、対話スキップの-qオプション
- 今後はこんな感じのコマンドを使っていこう
- 終わりに
対話的に使えるsphinx-quickstartコマンド
『Sphinxをはじめよう』の3.2に例があります
対話的に設定するのは以下の項目
この入力に基づき、ディレクトリやファイルが自動生成され、空の原稿がビルドできる状態になります。
行き着いたアプローチ:必要な引数を全部渡すことで、対話をスキップする
当初は対話的に使っていたのですが、対話的に入力した設定値が思い出せないことがありました。
これに対処するため、sphinx-quickstart
コマンドのドキュメントを確認し、必要な引数を全部渡す使い方に切り替えました。
引数込みのコマンドを控えておけば、プロジェクトが変わっても同じように最初の自動生成ができます。
例えば、sphinx-revealjsで作ったスライド1のリポジトリなら、こんなコマンドです
sphinx-quickstart \ --sep \ -p 2023_slides \ -a nikkie \ -r '' \ -l ja \ --no-batchfile \ --ext-githubpages \ --extensions sphinx_revealjs \ --extensions sphinx_design
--sep
:ソースディレクトリとビルドディレクトリを分ける指定-p
:プロジェクト名-a
:著者名-r
:リリース番号- 空文字列を渡していますが、そもそも指定しなくてもいいかもしれないですね
-l
:言語設定
さらに以下のオプションも追加しました。
最後の2つはsphinx-quickstart
が作るconf.pyに加筆せずに使いたいという怠惰さから来ています。
--no-batchfile
--ext-githubpages
--extensions
- これは複数指定でき、conf.pyの
extensions
(リスト)に指定する文字列を列挙しています3
- これは複数指定でき、conf.pyの
いずれもオプションも、詳しくは上記のsphinx-quickstart
コマンドのドキュメントをどうぞ
今回知った、対話スキップの-q
オプション
アウトプットに当たり調べたところ、sphinx-quickstart -q
で対話ウィザードをスキップできるという情報が見つかりました4。
https://www.sphinx-doc.org/ja/master/man/sphinx-quickstart.html#cmdoption-sphinx-quickstart-q
なるほど、スキップするオプションがあったんですね!
Sphinxユーザ会の「Sphinxをはじめよう」でも紹介されています
(略) -q オプションを付けると非対話モードでプロジェクトが作成できます。ここでは非対話モードを紹介します。
ドキュメントによると、-q
オプションと一緒に以下の3つを指定する必要があります5
-p
(上で見たプロジェクト名)-a
(上で見た著者名)-v
:プロジェクトのバージョン- https://www.sphinx-doc.org/ja/master/man/sphinx-quickstart.html#cmdoption-sphinx-quickstart-v
- 私はいつも指定していなかったわけですが、手元で試したところ、空文字列でもよさそうでした
sphinx-quickstart \ -q \ -p 2023_slides \ -a nikkie \ -v '' \
この最小構成のコマンドに、上で紹介したオプションをマシマシにしていけばよさそうですね。
今後はこんな感じのコマンドを使っていこう
sphinx-quickstart \ -q \ -p 2023_slides \ -a nikkie \ -v '' \ -l ja \ --sep \ --no-batchfile \ --ext-githubpages \ --extensions sphinx_revealjs \ --extensions sphinx_design
終わりに
sphinx-quickstart
コマンドをあえて対話的に使わない方法を見てきました。
今回爆誕した引数マシマシの呪文を詠唱して、Sphinxを使うときのディレクトリ構造は再現できるでしょう!
なお、上記のコマンドは、Python 3.12.0・Sphinx 7.2.6で動作確認しています
- sphinx-revealjsを愛用しており、GitHub Pagesで公開しています。↩
- ありがとう、sphinx.ext.githubpages。 ↩
- sphinx_designについてはこちらをどうぞ ↩
- 「Quiet mode that skips the interactive wizard for specifying options.」ref: https://www.sphinx-doc.org/ja/master/man/sphinx-quickstart.html#cmdoption-sphinx-quickstart-q↩
- 「This option requires -p, -a and -v options.」 ref: https://www.sphinx-doc.org/ja/master/man/sphinx-quickstart.html#cmdoption-sphinx-quickstart-q↩