Wie erstellt man Dokumentationen zu einem vorhandenden Autoit Script?

  • Hallo :)
    wie der Tittel schon verrät, suche ich nach einem weg, eine Dokumentation zu einem AutoIt script zu erstellen.
    Über google und der such funktion in diesem Forum habe ich leider nichts gefunden und in der Scite hilfe auch nicht.

    Wäre nett falls jemand mir die lösung verrät :D

    Einmal editiert, zuletzt von Terralax (21. Februar 2014 um 22:59)

  • Schönen guten Abend :)
    Ich versuche es mal so allgemein wie möglich zu halten. Im Grunde kann eine Dokumentation verschieden ausfallen. Der Sinn und Zweck ist auf jeden Fall z.B. die Verwendung eines Programmes den Benutzer beizubringen, oder die Funktionen / Klassen (bezogen auf C++ u. ähnliches) in einer UDF (oder auch DLL) zu dokumentieren damit der Programmierer diese verwenden kann. Alle drei Möglichkeiten (Programm, UDF / Klassenbibliothek und DLL’s) werde ich hier einmal erläutern. Für Fehler und deren Folgen übernehme ich keine Haftung. :P

    User Defined Functions:
    Hier im Forum wird hauptsächlich mit *.au3 Files gehandelt welche eindeutig in der Rohversion vorliegen. Dabei hat jeder Zugriff auf den Sourcecode und kann diesen nach Belieben verändern. Dies ist auch in anderen Programmiersprachen wie C++ der Fall. Nur dort werden Funktionsansammlungen anderes benannt. Ich weiß nicht ob meine Informationsquelle zuverlässig ist, aber ich glaube sie heißen dort „Header“ oder auch „Klassenbibliotheken“. Zwischen Unterschiede lässt sich streiten und ist definitiv nicht das Thema meines Textes. Jedenfalls, so finde ich, sind diese am leichtesten zu dokumentieren weil die Beschreibungen direkt als Kommentar im Sourcecode hinterlegt werden kann. Dabei sollten folgende Dinge beachtet werden:
    - Zuerst muss eine vollständige Beschreibung der Funktion vorliegen. Beantworte einfach dazu die Frage „Was macht diese Funktion?“ und du hast deine Arbeit getan. Wichtig ist vor allem dass entweder in der Sprache deiner Zielgruppe geschrieben wird oder in Englisch. Alles andere wäre nur unsinnig.
    - Nun kommen die Parameter dran. Beschreibe jeden Parameter einzeln! Die Frage „Welche Werte nimmt der Parameter entgegen und warum?“ hilft dir dabei. Halte dich dabei so kurz wie möglich (Besonders bei langen Funktionen).
    - Zuletzt wird dokumentiert welchen Wert die Funktion zurückgibt und wie dieser weiterverarbeitet werden kann.
    Die oberen genannten Punkte stellen dabei nur eine Mindestanforderung dar. Gerne dürfen selber weitere Punkte hinzugefügt werden. Auch je nach Programmiersprache variiert dieses. Beispielsweise muss für eine Klasse in C++ noch zusätzlich die Klasse beschrieben werden. Oder auch Konstanten müssen für ihren Zweck erläutert werden. AutoIt stellt zum Glück einen Funktionsheader zur Verfügung der auch in allen Standard UDF’s verwendet wird:

    [autoit]

    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: function
    ; Description ...:
    ; Syntax ........: function()
    ; Parameters ....:
    ; Return values .: None
    ; Author ........: Your Name
    ; Modified ......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........:
    ; Example .......: No
    ; ===============================================================================================================================

    [/autoit]

    Programme:
    Manchmal möchte Mann eine Dokumentation schreiben weil er befürchtet dass Frau mit dem komplexen System nicht klar kommt. Meistens sind diese auch tatsächlich hilfreich. Zuerst sollte man sich überlegen in welchen Sprachen man seine Dokumentation schreibt (vorzugsweise in der, die auch das Programm verwendet) und welches Format man verwendet. Mit Format meine ich nicht die üblichen Dateiendungen wie *.html oder *.pdf etc. sondern die Form bzw. den Stil der Dokumentation. Man kann es selbstverständlich als offline Website aufbauen oder als einfache PDF hinterlegen, muss man aber nicht. Ein klassisches Dateiformat wäre z.B. *.chm welche Windows automatisch seinen Hilfedatei Look verpasst. Andere Alternativen wäre beispielsweise ein externes Programm zu schreiben welches die einzelnen Texte formatiert anzeigt. So lassen sich auch ganz individuelle Bedienelemente hinzufügen. Jedenfalls sollte eine allgemeine Beschreibung des Programmes vorhanden sein. Eine einfache und simple Frage wäre: „Was macht das Programm?“ Natürlich sollte man den Text ein wenig ausschmücken und rudimentäre Werbebanner hinzufügen. Weitere wichtige Punkte sind Beschreibungen zu allen Bedienungselementen in dem selbst geschriebenen Programm. Weiteres lässt sich ergänzen.

    DLL’s:
    Im Grunde werden diese genauso dokumentiert wie UDF’s nur mit dem Unterschied, dass dies in einer externen Datei geschehen muss, weil der Sourcecode für den Programmierer nicht einsehbar ist. Auch hier müssen wieder die Mindestanforderungen erfüllt werden. Dabei sollten aber auch wirklich nur Funktionen dokumentiert werden, die relevant für die Programmierer sind, welche die DLL später verwenden. Meist gibt es zu den DLL’s auch Header (meist in C oder C++ der Fall) wo auch die Beschreibungen hinterlegt werden können. Allerdings gehe ich dazu nicht weiter ein weil man meist keine Dokumentationen zu DLL’s schreibt sondern welche zu vorhanden DLL’s sucht.

    Ich hoffe ich konnte dir etwas weiterhelfen. Falls du Fragen hast oder etwas unklar ist, dann sag mir Bescheid. Wie man sieht bin ich in voller Schreiblust. ^^
    ~ Make

  • Hallo ^^Vielen Dank für die ausführliche Antwort :)
    Es tut mir leid ich habe meine Frage leider unpräzise ausgedrückt :(
    Eigentlich meinte ich mit welchem programm man eine dokumentation generieren lassen kann.
    So kann man zum beispiel unter netbeans einfach eine java doc generieren lassen. In Scite hab ich allerdings keine derartige Funktion gefunden. Die Dokumentation zu der FF.au3 wurde vermute ich mal auch generiert und nicht per hand mühselig erstellt.
    kennt ihr eine Funktion in Scite oder ein Programm das diese in HTML, rtf oder pdf generieren kann?

    Ich brauche diese Dokumentation um sie in meine Facharbeit einbinden zu können, deswegen wäre ein derartiges Dateiformat vom vorteil :)
    Nur so am rand, die Dateien die man in C/C++ einbindet, enden meist mit dem Suffix ".h" oder ".hpp", dies steht für Header, somit ist deine Quelle richtig :)

  • Für PDF Dateien verwende ich Microsoft Word 2010.
    Die *.docx Files lassen sich einfach in *.pdf Files exportieren.
    Für *.chm Files habe ich mir das Programm BookME gedownloadet.
    Es wird kostenlos angeboten. Den Downloadlink habe ich nicht mehr.
    Für *.html Files (um diese schnell zu erstellen) verwende ich einen Editor.
    Diese haben auch einen speziellen Namen der mir aber entfallen ist.
    ~ Make :)

  • Danke erneut :)
    Ist Word ist in der lage so etwas

    [autoit]

    ; #FUNCTION# ====================================================================================================================; Name ..........: function
    ; Description ...:
    ; Syntax ........: function()
    ; Parameters ....:
    ; Return values .: None
    ; Author ........: Your Name
    ; Modified ......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........:
    ; Example .......: No

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ;===============================================================================================================================

    [/autoit]


    In etwas wie http://german.documentation.ff-au3.thorsten-willert.de/ff_functions/_FFConnect.php umzuwandeln?
    Damit meine ich nur den Aufbau der Seite, nicht dass es html ist.
    Ich habe dokumentation dieser art jetzt schon recht oft gesehen, ich denke daher, dass es schon ein programm zum rstellen von solchen dokumentationen bereits existiert. Falls nicht werde ich mich an eine Implementierung davon setzen :)

  • Für solch einen UDF-Header einfach in die Zeile klicken wo dein "Func Bla(..)" steht und dann Ctrl+Alt+H drücken ;)
    (Alternativ im Tools-Menü auswählen)

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • Für solch einen UDF-Header einfach in die Zeile klicken wo dein "Func Bla(..)" steht und dann Ctrl+Alt+H drücken ;)
    (Alternativ im Tools-Menü auswählen)

    Wenn ich bei mir Ctrl+Alt+H drücke pasiert nichts und in dem Tools Menü finde ich auch nichts 8|
    ich versuche erstmal meine scite version zu updaten, vielleicht läuft es dann :)

    Danke für die Lösung :)

    Edit: Nach einem Update ging dies zwar, allerdings war dies war leider auch nicht die Lösung :(
    ctrl+alt+h erstellt nur

    [autoit]

    ; #FUNCTION# ====================================================================================================================; Name ..........: function
    ; Description ...:
    ; Syntax ........: function()
    ; Parameters ....:
    ; Return values .: None
    ; Author ........: Your Name
    ; Modified ......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........:
    ; Example .......: No

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ;===============================================================================================================================

    [/autoit]

    jedoch nicht die dokumentation.
    ich mache mich jetzt drann selbst ein Programm zu diesem zweck zu schreiben , da es anscheinen noch nichts dafür gibt.
    Danke für die Hilfe, sobald das Script fertig ist, werde ich es hier im Forum veröffentlichen :)

    2 Mal editiert, zuletzt von Terralax (21. Februar 2014 um 22:51)

  • Es gibt dafür auch ein sehr schönes Programm: https://autoit.de/index.php?page=Thread&threadID=18191
    Edit: bitte keine (unnötige) Leichenschändung betreiben, der obige Thread ist so gut wie er ist ;)

    lg
    M

  • Wie gesagt, wie Dokumentationen wie z.B. die Hilfedatei von AutoIt erstelle ich mit BookME.
    Selbstverständlich muss Text noch selber getippt werden, aber das Design wird als *.html oder auch *.chm Datei generiert.
    Zudem bietet das Programm auch die Möglichkeit selber Vorlagen zu erstellen. So brauchst du diese nur einmal zu erstellen und den Text nur noch hinein schreiben.
    Im Anhang ein einfaches Beispiel ^^

  • Zur FF.au3 Dokumentation:
    Die eigentliche Beschreibung ist per Hand gemacht, wobei diese wiederrum nur Templates für die Dateien auf dem Web-Server sind.
    Die Funktionsaufrufe und die Kurzbeschreibungen werden aus der UDF erstellt und auf den Server geschoben.
    Diese werden dann per PHP in die Dateien eingefügt, ebenso die Beispiele, die gleichzeitig noch mit Syntax-Highlighting versehen werden. (Die Beispiele sind die gleichen die man auch downloaden kann)

    Also ein bisschen Arbeit ist schon noch nötig, außer man schreibt die eigentliche Beschreibung auch noch in die UDF und läßt dann alles daraus genererieren.
    Dort könnte man dann noch etwas Vorformatierung z.B mit reStructuredText oder Ähnlichem vornehmen.

    Oder man verwendet etwas davon:
    https://de.wikipedia.org/wiki/Software-…tationswerkzeug
    ist zwar alles nicht für AutoIt gedacht, könnte man aber dennoch verwenden, ohne das Rad wieder von vorn zu erfinden.

    Grüße
    Stilgar