Automatische Dokumentation für AutoIt Projekte

  • Hallo zusammen,

    ich bin neu hier und habe natürlich gleich die erste Frage im Gepäck! :P

    Ich programmiere an einem größeren Projekt, an dem auch andere beteiligt sind. Die Dokumentation ist dabei ein nicht unerheblicher Aufwand, zumal diese eigentlich auch regelmäßig aktualisiert werden müsste. Jetzt ist die Frage, ob es für AutoIt ein Tool oder Skript gibt, dass die automatische Erstellung einer Dokumentation von größeren Projekten ermöglicht? Diese soll im Idealfall ähnlich funktionieren wie z.B. Sandcastle oder Doxygen. Bisher habe ich diesbezüglich leider nichts gefunden.

    Im schlimmsten Fall müsste ich die Sache selbst angehen und ein entsprechendes Tool basteln, jedoch hoffe ich noch immer, dass das Problem schon andere Leute hatten. :)

    Danke schon einmal für eure Hilfe.

    Gruß X

  • Ja ich hatte gehofft, dass eben jemand schon was gemacht hat. Da ich aber auch über Google usw. nix gefunden haben, befürchte ich, dass ich das selbst schreiben darf. :(

  • Das weiß ich nicht genau. Habe auch noch nie wirklich mit Doxygen gearbeitet. Werde dann wohl selber tätig werden müssen. Sollte jemand etwas kennen, bitte unbedingt hier melden! Danke.

    Gruß X

  • Wenn du die Funktionen entsprechend der UDF-Richtlinien dokumentierst, dann kannst du diese Kommentare aus den Dateien extrahieren und die txt-Dateien erstellen, wie sie auch die Grundlage der AutoIt-Hilfe sind. Auf dieser Basis kann man dann mit den Skripten zur Hilfe-Erstellung eine .chm-Datei erstellen. Fragt dazu am besten Der_Doc oder Tweaky wie man diese Skripte verwendet und wo man sie erhält ;)

    Edit: Schaut dazu auch mal die Dateien im Include-Ordner an ;)
    Edit: Das Programm um die txt-Dateien zu erstellen gibt es hier

  • Hi,
    ich glaube meinen Namen dort gelesen zu haben. 8|
    Naja wir erstellen ja keine Dateien neu sondern "rendern" dise ja nur.
    Das macht noch Tweaky :D
    Aber ich glaube nicht das eine CHM Datei der beste Weg für eine Doku eine laufenden Projektes ist. :huh:
    Ich würde da eher eine Changelog DB benutzen (schreiben) (DokuWiki) wo man seine Änderungen neu zuschreiben kann oder eben vorhandene Ändern könnte.
    Das hätte als webbasierte Form einen Vorteiles können mehrere User an einem "Dokument" arbeiten.

    Später dann das ganze vielleicht auch Rendern und dann entweder HTML, Latex XML oder CHM erzeugen/bearbeiten.

    Edit: werde mir das Template mal selber anschauen :thumbup:

    MfG
    Der_Doc

  • Moin zusammen,

    brauche dringendst bei diesem Thema Hilfe. Leider habe ich zu Doxygen, dass ich bisher bei C++ eingesetzt habe, nichts gefunden.
    Und mit dem Tool UDF_BuildTemplates komme ich rein gar nicht klar. Das schmeißt IMMER kryptische Fehlermeldungen, mit denen ich nichts anfangen kann.

    Kann es wirklich sein, dass es hier nichts zur automatisierten Code-Dokumentation für AutoIt gibt?

    Bitte um Anregungen, Tipps oder Links. Danke!

    LG Kai

  • Der Template-Builder ließt die Funktionsheader und erstellt daraus dann Text-Dateien. Diese kann man dann in eine CHM-Datei umwandeln.

    Wenn du Funktionsaufrufe referenzieren willst usw, musst du das selbst erstellen.
    Als erstes solltest du dann alle includes als Include-Baum auflisten.
    Als nächstes diesen nach Funktionen durchsuchen und die Ergebnisse in einem Dictionary-Objekt speichern (Schlüssel: Funktion, Wert: Array aus Dateiname, Zeile usw.)
    Dann fänngst du im Include-Baum ganz oben an und gehst ihn Zeile für Zeile durch. Bei einem Funktionsaufruf schreibst du die nötigen Infos z.B. in ein anderes Dictionary.
    Am Ende erstellst du die Referentdoku. Nebenbei kannst du natürlich auch noch die Funktionsheader parsen und mit in die Doku aufnhemen.

    • Offizieller Beitrag

    Ich habe damit bisher noch nichts zu tun gehabt. Aber beim Lesen der Beschreibung kam mir gleich wieder LUA in den Sinn. :D
    Bietet sich hier geradezu an, wie bei allen SciTE-bezogenen Operationen. Zumal LUA hier wirklich rasend schnell ist. Ich habe z.B. ein OrganiceInclude-Skript in LUA geschrieben, das braucht < 1s für ein 20.000 Zeilen Skript.
    Wenn also dafür echter Bedarf besteht könnte ich mich dieses Themas annehmen. Ich brauchte dann nur eine exakte Beschreibung des erforderlichen Funktionsumfangs.

  • Moin zusammen,

    Der Template-Builder ließt die Funktionsheader und erstellt daraus dann Text-Dateien. Diese kann man dann in eine CHM-Datei umwandeln.

    Wenn du Funktionsaufrufe referenzieren willst usw, musst du das selbst erstellen.
    Als erstes solltest du dann alle includes als Include-Baum auflisten.
    Als nächstes diesen nach Funktionen durchsuchen und die Ergebnisse in einem Dictionary-Objekt speichern (Schlüssel: Funktion, Wert: Array aus Dateiname, Zeile usw.)
    Dann fänngst du im Include-Baum ganz oben an und gehst ihn Zeile für Zeile durch. Bei einem Funktionsaufruf schreibst du die nötigen Infos z.B. in ein anderes Dictionary.
    Am Ende erstellst du die Referentdoku. Nebenbei kannst du natürlich auch noch die Funktionsheader parsen und mit in die Doku aufnhemen.

    hast Du evtl. mal eine Beispieldatei, die ohne Fehler funktioniert?

    Aber beim Lesen der Beschreibung kam mir gleich wieder LUA in den Sinn.

    Mir ist nicht ganz klar was das ist, aber da Du dass im Zusammenhang mit dem Editor nennst, befürchte ich, dass der Ansatz der falsche ist. Aber ich beschreibe meinen gewünschten Workflow trotzdem einmal. Er ist prinzipiell mit Doxygen (http://www.doxygen.org) abdeckbar.
    - Ich habe eine variable Menge von AU3 Dateien.
    - Aus diesen Dateien möchte ich minimal im Stapelbetrieb die Funktionsköpfe extrahieren und in jeweils neue Dateien schreiben. Schön wäre es, wenn auch Variablen und Dateibeschreibungen wie in Doxygen gingen. ;)
    - Ideal wäre es, wenn diese Dateien dann von Doxygen verarbeitet werden könnten, denn dann wäre die perfekte Codedokumentation möglich.

    Gruß Kai

    • Offizieller Beitrag

    LUA ist eine Skriptsprache. Da sie direkt mit dem Scite-Interface interagiert, ist sie besonders geeignet für Editor bezogene Operationen.
    Der Verweis auf ein anderes Programm zur Dokumentation nützt mir nichts. Aber auch dieses Programm kann dir sicher keine Variablenbeschreibung liefern, wenn diese nicht im Skript vorliegt.
    Also ist schon eine Beschreibung erforderlich zur Positionierung, Markierung der erforderlichen Daten.

  • Moin,

    Aus solchen Headern baut Doxygen ein Hilfesystem auf. Eine Extraktion in eine Textdatei würde wohl auch zum Erfolg führen. Wobei dann ggf. iterativ heraus gefunden werden müsste, wie diese aufgebaut sein müsste. Hat hier schon jemand Erfahrungen?

    Gruß Kai