2011-04-02 2 views
13

Sto utilizzando Sphinx per documentare uno dei miei progetti e mi piace visualizzare l'anteprima delle modifiche nel mio browser. Voglio essere in grado di salvare alcune modifiche ad un file .rst, ed essere in grado di aggiornare immediatamente il mio browser e vedere le modifiche.Creazione automatica della documentazione Sphinx quando un file sorgente cambia

In sostanza, voglio eseguire automaticamente un make html ogni volta che uno dei file .rst viene modificato.

risposta

0

È possibile creare una macro in voi editor preferito che salva il file e lo apre nel browser, qualsiasi editor di testo può fare (geany, gedit, Emacs, VI, Notepad ++ ...)

+1

Non è una cattiva idea ... tuttavia preferirei qualcosa di più portatile. Voglio davvero essere in grado di eseguire 'make html --auto-rebuild' –

+0

bene puoi sempre scrivere uno script che lo fa – P2bM

3

Se si' su un sistema * nix, è possibile utilizzare inotify per monitorare eventi del filesystem e azioni di trigger.

Per esempio, su ubuntu,

apt-get install inotify-tools 

quindi eseguire script come questo per ascoltare gli eventi in una determinata directory

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 
8

Jacob Kaplan-Moss has a good solution:

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

Nota, modificare il modello in modo che corrisponda al suffisso. Jacob usa * .txt, ma ho dovuto cambiarlo in * .rst.

+0

Se stai usando Firefox puoi installare il componente aggiuntivo AutoReload. – swietyy

+0

Questo ha funzionato per me. Ho modificato il comando 'make html' in 'make html && xvkbd -window Firefox -text "\ Cr"' per ottenere il ricaricamento automatico. –

17

È possibile utilizzare sphinx-autobuild.

E 'facile da usare, per esempio:

sphinx-autobuild docs docs/_build/html 

o, se si dispone di una directory di costruzione separata,

sphinx-autobuild source build/html 

Sarà anche avviare automaticamente un aggiornamento della pagina nel browser.