VSCODEでsphinxの自動ビルド環境を構築する

やらなければいけないこと

・モジュールの2つのインストール
・batファイルの編集
・batファイルをターミナルで常駐させる

発端


本来であればRSTViewerを使うのが鉄板なのですが、言語サーバーとパフォーマンスに問題があるらしく、結局地味にビルドした方がいいらしい。

で、オートビルド機能があるので、いくつかありますが、make.batをいじる形を試してみる。

参考


まず、オートビルドのモジュールを追加。
私の環境ではコアの監視モジュールのwatchfilesもインストールしないと駄目でした。

pip install sphinx-autobuild
pip install watchfiles    

次にmake.batを編集。
4行の追加分を追加(コメントは省いて)

@ECHO OFF

pushd %~dp0

REM Command file for Sphinx documentation

if "%SPHINXBUILD%" == "" (
	set SPHINXBUILD=sphinx-build
)
set SOURCEDIR=source
set BUILDDIR=build

%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
	echo.
	echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
	echo.installed, then set the SPHINXBUILD environment variable to point
	echo.to the full path of the 'sphinx-build' executable. Alternatively you
	echo.may add the Sphinx directory to PATH.
	echo.
	echo.If you don't have Sphinx installed, grab it from
	echo.https://www.sphinx-doc.org/
	exit /b 1
)

@REM ライブファイルの追加文
if "%1" == "livehtml" goto livehtml
@REM ライブファイルの追加文終了

if "%1" == "" goto help

%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
goto end

@REM ライブファイルの追加文
:livehtml:
sphinx-autobuild %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
goto end
@REM ライブファイルの追加文終了


:help
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%

:end
popd

引数でlivehtmlが入力されたら、オートビルドを実行するというbatファイルです。
実行は

make.bat livehtml


を実行

成功するとbatファイルが動き続けてファイルが保存されると勝手にビルドします。
下記のサーバーのアドレスをクリックすると自動でHTMLが更新されてリアルタイム(ビルド)でHTMLを確認できます。

なお、本当にINDEX.htmlファイルがビルドされてるわけではなく、
監視用のジェネレートファイルが別途作られてビルドされてます。
ですので、コードが完成したらmake.bat htmlで正式にビルドする必要があります。




常に実行中ですので、batファイルを終了したい場合は、ctrl+cでターミナルで終了させてください。