2016-03-17 8 views
8

Ho scritto la documentazione per un software C++ di medie dimensioni che utilizza Doxygen insieme a Markdown. Sono abbastanza soddisfatto, in quanto dopo aver cambiato lo strato xml ho finito con qualcosa di simile: http://docs.mitk.org/nightly/index.htmlutilizzando Doxygen in read-the-document

Vorrei portare questa documentazione in linea, idealmente usando qualcosa come ReadtheDocs, in cui la documentazione sarebbe stata costruita automaticamente dopo un "git commit", e ospitato per essere sfogliato.

ReadtheDocs si presenta come il sito ideale ma utilizza Sphinx e ReStructuredText come valori predefiniti. Doxygen può essere usato anche, ma AFAIK solo attraverso Breathe. Passare attraverso questa rotta significa essenzialmente che avrei bisogno di ristrutturare tutta la documentazione se non voglio scaricare tutta la documentazione dell'API in una singola pagina (http://librelist.com/browser//breathe/2011/8/6/fwd-guidance-for-usage-breathe-with-existing-doxygen-set-up-on-a-large-project/#cab3f36b1e4bb2294e2507acad71775f).

Paradossalmente, Doxygen è installato nel server read-the-docs, ma dopo aver lottato non sono riuscito a trovare una soluzione alternativa per ignorare la sua Sfinge o Mkdoc.

risposta

5

ho provato la soluzione seguente per utilizzare Doxygen su Leggi The Docs e sembra funzionare:

  1. istituire progetto vuoto sfinge (fare riferimento al documento ufficiale sfinge),
  2. in conf sfinge. comando py add per compilare documentazione doxygen,
  3. utilizzare conf.py html_extra_path direttiva di configurazione per sovrascrivere la documentazione doxygen generata sopra la documentazione di sfinge generata.

Ho provato questo con i seguenti sorgenti:

.../doc/Doxyfile 
     /build/html 
     /sphinx/conf.py 
     /sphinx/index.rst 
     /sphinx/... 

Qualche spiegazione:

  1. nel mio setup Doxygen genera la sua documentazione in "doc/build/html",
  2. ReadTheDocs esegue i suoi comandi nella directory in cui trova il file conf.py.

Cosa fare:

  1. add seguenti righe nel conf.py di generare documentazione Doxygen:

    import subprocess 
    subprocess.call('cd .. ; doxygen', shell=True) 
    
  2. aggiornamento conf.py html_extra_path direttiva:

    html_extra_path = ['../build/html'] 
    

In questa configurazione ReadTheDocs deve generare e archiviare correttamente la documentazione di Doxygen html.

todo:

  • altri formati di documentazione, ad esempio: pdf.
+0

Sì, ha funzionato come fascino, molte grazie.In un'altra nota, utilizzo CMake per configurare un numero di file e sarebbe bello se fosse installato nel server readthedocs. Per il momento, ho ricodificato questa configurazione all'interno di conf.py, anche se con CMake sarebbe stato fantastico non mantenere due software che facevano lo stesso. – solernou

+1

Il metodo sopra è anche documentato qui: https://breathe.readthedocs.io/en/latest/readthedocs.html – TimSC