Автоматически создавать документацию Sphinx при изменении исходного файла

Я использую Sphinx для документирования одного из моих проектов, и мне нравится просматривать мои изменения в моем браузере. Я хочу сохранить некоторые изменения в файле .rst и сразу обновить браузер и увидеть изменения.

По сути, я хочу автоматически выполнять make html, когда изменяется один из файлов .rst.

Ответ 1

Вы можете использовать sphinx-autobuild.

Легко использовать, например:

sphinx-autobuild docs docs/_build/html

или, если у вас есть отдельный каталог сборки,

sphinx-autobuild source build/html

Он также автоматически инициирует обновление страницы в браузере.

Ответ 2

Якоб Каплан-Мосс имеет хорошее решение:

pip install watchdog
watchmedo shell-command \
          --patterns="*.rst" \
          --ignore-pattern='_build/*' \
          --recursive \
          --command='make html'

Обратите внимание, измените шаблон в соответствии с вашим суффиксом. Якоб использует *.txt, но мне нужно было изменить его на *.rst.

Ответ 3

Если вы используете систему * nix, вы можете использовать inotify для мониторинга событий файловой системы и запуска действий.

Например, на ubuntu,

apt-get install inotify-tools

Затем запустите script, чтобы прослушивать события в заданном каталоге

while true
  do
    inotifywait -r -e modify -e move -e create -e delete /tmp/docs | while read line
      do
        echo "file changed; time to run make html"
      done
  done

Ответ 4

Вы можете создать макрос в своем любимом редакторе, который сохранит файл и откроет его в вашем браузере, любой текстовый редактор может сделать (geany, gedit, emacs, vi, notepad ++...)