Frage

Ich schaffe interne Dokumentation für ein C ++ Projekt mit Doxygen. Ich habe Doxygen ist die Quelle für Methoden, etc., aber das macht die Seite ziemlich schwer zu scannen. Ich mag es wie rdoc und blenden Sie die Quelle in einem Block verhalten, die standardmäßig ausgeblendet ist.

Ich dachte, dass HTML_DYNAMIC_SECTIONS mir dies tun könnte lassen, aber leider, sagt der Changelog diese Option wirkt sich nur auf Diagramme und Grafiken.

Vielleicht könnte ich es tun, um die LAYOUT_FILE bearbeite?

Wie auch immer, intelligente Menschen, wie kann ich Doxygen coerce collapsable Codeabschnitte zu generieren?

War es hilfreich?

Lösung

, wenn includ [ing] die Quelle für Methoden, etc, [...], um die Seite ziemlich schwer macht scannen, warum Sie nicht nur link es ( SOURCE_BROWSER = YES ) anstelle von mit es ( INLINE_SOURCES = YES )? Dies würde die Seiten leichter zu scannen und schneller zu laden, machen, und die Quelle noch zugänglich sein würde (auf Kosten einer weiteren Quellseite Last). hängt davon ab, wie oft müssen Sie die Quelle zugreifen eigentlich, denke ich.

, dass gesagt wird, es ist eine Art und Weise zusammenklappbare Codeabschnitte zu erzeugen (Sie werden die Quelle haben zu ändern und neu kompilieren Doxygen, obwohl):

    <div class="dynheader"><div class="dynsection">
    [collapsible section]
    </div></div>
  • enthalten Codeabschnitte gekennzeichnet sind, etwa so: <div class="fragment"><pre class="fragment">...</pre></div>
  • damit die enthaltenen Codeabschnitte zusammenklappbar zu machen, müssen Sie entweder

    • der Code dass erzeugt der <div class="fragment"><pre class="fragment">...</pre></div> zu erzeugen <div class="dynheader"><div class="dynsection">...</div></div> (und wahrscheinlich einige CSS anpassen) oder
    • Ändern Sie den javascript initDynSections() Funktion dieser Scans und bricht zusammen, die zusammenklappbaren Abschnitte <div class="fragment"><pre class="fragment"> als einer von ihnen zu erkennen.

die Umsetzung (oder geht die SOURCE_BROWSER Route :)) wird für den Leser als Übung. Viel Glück!

oh, und wenn Sie mit einem Patch gelingen sollte, wäre es toll, wenn du könntest eintragen so dimitri, dass er es in einer zukünftigen Version enthalten. Dank!

Andere Tipps

Kommen entlang hier über die Suchmaschine meiner Wahl möchte ich nur hier eine Anmerkung lassen, dass es nicht unbedingt notwendig ist, jede doxygen Quelle zu ändern.

Wenn diese Frage gestellt wurde, gibt es wohl keine Möglichkeit, auf einbetten reine html den htmlonly-Tag, aber in diesem Sinne ist die Lage faltbaren Behälterabschnitte erstellen eine Funktion namens toggleVisibility missbrauchen

 function toggleVisibility(linkObj)
 {
   var base = $(linkObj).attr('id');
   var summary = $('#'+base+'-summary');
   var content = $('#'+base+'-content');
   var trigger = $('#'+base+'-trigger');
   var src=$(trigger).attr('src');
   if (content.is(':visible')===true) {
     content.hide();
     summary.show();
     $(linkObj).addClass('closed').removeClass('opened');
     $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
   } else {
     content.show();
     summary.hide();
     $(linkObj).removeClass('closed').addClass('opened');
     $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
   } 
   return false;
 }

das ist zur Zeit jedes Mal zur Verfügung der Dokumentation in einer Datei namens dynsections.js platziert in der Dokumentation Wurzel erzeugt wird.

In Bezug auf diesen Code erhält man die Bedingungen kennen, um faltbar Code zu erstellen, das von seiner / ihrer eigenen Dokumentation mit Hilfe von Javascript in dieser Funktion innere Ausführungsfehler zu vermeiden und weiteren JavaScript-Code verhindert uninterpretiert wird.

  1. dom Element mit einer eindeutigen Kennung id
  2. ein anderes verkapselte dom Element mit eindeutiger Kennung id-Zusammenfassung
  3. ein anderes verkapselte dom Element mit eindeutigem Identifikator id-Gehalt
  4. eine andere verkapselte dom Element mit eindeutigen Identifikator id-trigger
  5. der id-Kippgliedes muss ein src Attribut mit mindestens 1 Zeichen enthält
  6. die class Attribute der wichtigsten Container keine Rolle spielen

Mit ond Bedingungen im Auge kann man den folgenden Code erstellen.

## <a href="javascript:toggleVisibility($('#example-div'))">Fold me</a>
## <div id="example-div">
##   <div id="example-div-summary"></div>
##   <div id="example-div-content">
##     <pre>
##       foo
##       bar
##     </pre>
##   </div>
##   <div id="example-div-trigger" src="-"></div>
## </div>
## @htmlonly <script type="text/javascript">$("#example-div").ready(function() { toggleVisibility($("#example-div")); });</script> @endhtmlonly

Der doxygen Code oben wird verwendet, bash Code zu dokumentieren mit bash-doxygen so könnte es sieht etwas anders aus reinem doxygen-Code. Der erste Teil, die div-Container beinhaltet, ist bereits beschrieben, zu erwähnen, die Bedingungen, die Quelle der Funktion toggleVisibility passen und es ohne Fehler ausführbar macht die doxygen Kommentare für unsere Bedürfnisse anpassen.

Der eindeutige ID-Präfix hier verwendet wird, ist example-div. In einer Zeile gibt es einen hyperref Verbindungsaufbau einen Abschnitt direkt unter Verwendung von JavaScript in Verbindung mit einigem jQuery Code zu entfalten.

Was bleibt, ist das Motto am Ende. Es enthält die jQuery Skript zunächst ausgeführt werden müssen, um die spezifischen Segment falten. Für die bash-doxygen (und wahrscheinlich auch andere Sprachen) der Block muss ein Motto sein, weil der Block Umfang des Skripts

  

normalerweise der Inhalt zwischen \ htmlonly und \ endhtmlonly eingesetzt ist, wie sie ist. Wenn Sie ein HTML-Fragment eingefügt werden sollen, den Blockumfang wie eine Tabelle oder Liste hat, die außerhalb erscheinen soll

..

, kann dies zu einem ungültigen HTML führen. Sie können mit \ htmlonly [Block] machen doxygen den aktuellen Absatz beenden und neu starten, nachdem endhtmlonly \.

als bemerkt in der doxygen Dokumentation und ein Kommentar unten rechts markiert Lösung des Stackoverflow Antwort auf Script-Tags in doxygen Dokumentationen darunter.

Danke für das Lesen. Hoffe, dass dies einige Leute hilft, die hier entlang kommen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top