2016-03-17 15 views
8

Ich habe die Dokumentation für eine mittelgroße C++ - Software mit Doxygen zusammen mit Markdown geschrieben. Ich bin ganz zufrieden damit, wie es nach der XML-Schicht ändert ich mit so etwas wie das endete: http://docs.mitk.org/nightly/index.htmlmit Doxygen in read-the-docs

Ich würde diese Dokumentation gerne online zu schalten, idealerweise so etwas wie ReadtheDocs verwenden, wo die Dokumentation würde automatisch erstellt werden, nachdem ein "git commit" und gehostet, um durchsucht zu werden.

ReadtheDocs sieht wie die ideale Site aus, verwendet jedoch Sphinx und reStructuredText als Standardwerte. Doxygen kann auch verwendet werden, aber AFAIK nur durch Atmen. Diese Route zu durchlaufen, bedeutet im Wesentlichen, dass ich die gesamte Dokumentation neu strukturieren müsste, wenn ich nicht die gesamte API-Dokumentation auf einer einzigen Seite ablegen möchte (http://librelist.com/browser//breathe/2011/8/6/fwd-guidance-for-usage-breathe-with-existing-doxygen-set-up-on-a-large-project/#cab3f36b1e4bb2294e2507acad71775f).

Paradoxerweise ist Doxygen im Read-the-Docs-Server installiert, aber nach dem Kämpfen konnte ich keine Abhilfe finden, um seine Sphinx oder Mkdocs zu überspringen.

Antwort

5

Ich habe folgende Lösung versucht Doxygen auf Lesen Sie die Dokumentation zu verwenden, und es scheint zu funktionieren:

  1. einrichten leer Sphinx Projekt (siehe offizielle Sphinx doc),
  2. in Sphinx conf. py add Befehl zum Erstellen doxygen Dokumentation,
  3. Verwenden Sie conf.py html_extra_path Config-Anweisung zum Überschreiben generierten doxygen Dokumentation über generierte Sphinx-Dokumentation.

Ich habe dies mit folgenden Quellbaum getestet:

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

Einige Erklärung:

  1. in meinem Setup doxygen erzeugt seine Dokumentation in "doc/build/html",
  2. ReadTheDocs führt seine Befehle im Verzeichnis aus, in dem es die Datei conf.py findet.

Was ist zu tun:

  1. Add folgenden Zeilen in conf.py doxygen docs zu generieren:

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

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

In dieser Konfiguration sollte ReadTheDocs die Doxygen-HTML-Dokumentation ordnungsgemäß generieren und speichern.

todo:

  • andere Dokumentationsformate, zum Beispiel: pdf.
+0

Ja, es funktionierte wie Charme, vielen Dank.Ein weiterer Hinweis, ich benutze CMake, um eine Reihe von Dateien zu konfigurieren, und wäre schön, wenn es auf dem Readthedocs-Server installiert wäre. Für den Moment habe ich diese Konfiguration in conf.py neu codiert, obwohl es großartig wäre, wenn CMake nicht zwei Software-Teile beibehält, die dasselbe tun. – solernou

+1

Die obige Methode ist auch hier dokumentiert: https://breathe.readthedocs.io/en/latest/readthedocs.html – TimSC