Lazarus Documentation Editor/de

From Free Pascal wiki
Jump to navigationJump to search

Einleitung

Ein wichtiger Teil von Lazarus der noch fehlt, ist die Dokumentation. Um beim Erstellen dieser Dokumentation zu helfen, wurde ein Werkzeug entwickelt. Diese Seite will die Arbeiten dieses Werkzeugs beschreiben. Zur Bezeichnung des Lazarus Basis Verzeichnisses benutze ich [$LazDir]. Wenn sie dieses lesen, ersetzen sie es durch das Verzeichnis, in dem Lazarus installiert ist.

Das Weshalb

Das erste Ziel dieses Projektes ist es, eine Online Hilfedatei verfügbar zu machen. Um die Hilfedatei plattformunabhängig zu machen haben wir begonnen, XML Dateien für jede Unit in Lazarus zu erzeugen. Bislang wurde nur mit dialogs.pp und buttons.pp begonnen.

Diese XML-Dateien werden dann benutzt, um HTML-Seiten zu erzeugen, welche über das Internet abgerufen werden können unter http://lazarus-ccr.sourceforge.net/docs/lcl/ . In einem späteren Stadium wird eine integrierte Hilfe entwickelt, unter erneuter Nutzung der selben XML-Dateien.

Der Start

Wie zuvor erwähnt, um die Dokumentation plattformunabhängig zu halten, wird XML verwendet. Die gegenwärtige Dokumentation ist zu finden in [$LazDir]/docs/xml/. Bislang gibt es meistens Gerüstdateien im LCL Verzeichnis. Die XML Dateien, die sie in diesem Verzeichnis finden, sind automatisch generiert und müssen angepasst werden, um brauchbar zu sein. So jetzt wissen wir, wo die Dateien zu finden sind. Lassen sie uns auf das Werkzeug schauen, um sie zu erstellen/zu überarbeiten.

Das Werkzeug

"lazde" ist ein Werkzeug, um die XML Dateien zu bearbeiten, aber es kann auch benutzt werden, um die grundlegenden Dateien aus den Quelldateien zu generieren und mittels eines externen Werkzeugs eine HTML Version der Dokumentation zu generieren. Ein Beispiel der Ergebnisse des letzten Werkzeugs ist hier zu sehen, ein Teil der Dokumentation bis hierher. Wenn sie noch keine kompilierte Version von lazde haben, dann müssen sie sie selbst erstellen. Die Quellen für "lazde" sind zu finden in [$LazDir]/doceditor/. Wenn sie dieses Programm starten und sie [$LazDir]/docs/xml/lcl/dialogs.xml geöffnet haben, dann werden sie diesen Bildschirm präsentiert bekommen

Lazdemain.png

Die Arbeit

Lazdeelements.png

Das Öffnen des Knotens "Packages" wird den "LCL" Knoten zeigen, der einen "Dialogs" knoten enthält. Das Auswählen dieses letzten Knotens wird die untere Baumansicht mit Elementen füllen. Diese Elemente stellen Konstanten, Typen und Klassen dar, die in der Dialogs.pp Unit definiert sind. Benutzte Units sind auch als Knoten hinzugefügt. Andere Knoten sind hinzugefügt für die Eigenschaften einer Klasse, die Parameter für eine Funktion und so weiter.

Das Auswählen eines Knotens in der unteren linken Baumansicht führt zur Anzeige des Inhalts dieses Knotens auf der rechten Seite des Fensters.

Wenn sie auf diese Seite schauen, werden sie einen Überblick über die Klassen sehen, die in der "dialogs" Unit definiert sind. Nach jeder Klasse sehen sie eine Textzeile. Dieser Text kommt von der "short" Editbox von lazde.

Unter der "short" Editbox ist ein Memofeld, wo sie eine ausführlichere Beschreibung der Komponente oder Eigenschaft eingeben können.

Beachten sie: Wenn sie einen Zeilenumbruch einfügen wollen, dann benutzen sie <br/>

Die nächsten sind "Errors", "See also" und "Example code File".

"Errors" kann benutzt werden, um über Fehler zu berichten, die von einer Funktion ausgelöst werden, wenn die Parameter Werte außerhalb des Bereichs haben. Für ein Beispiel können sie auf diese Seite schauen.

Genau über "See also" und "Example code File" sehen sie drei Schaltflächen. Diese Schaltflächen erlauben ihnen, Links auf andere Seiten beziehungsweise Codebeispiele hinzuzufügen und zu entfernen.

Das Ergebnis

Werfen sie einen Blick auf die Beschreibung von InputQuery. Oben auf der Seite sehen wir, worüber die Seite berichtet, in diesem Fall das InputQuery Funktion Formular der dialogs.pp. Die erste Textzeile ist, was in der "Short" Editbox in lazde eingegeben wurde.

Als nächstes folgt die Erklärung dieser Funktion in den Quellen. Der Erklärungsteil wurde erzeugt vom Html-Builder und wurde aus den Quellen genommen. Weil es zwei Versionen dieser Funktion gibt, sagt die Quellenposition 0.

Dann werden die Argumente festgelegt. Wenn sie den InputQuery Knoten in lazde öffnen, dann werden sie alle Argumente sehen als Nachfolger Knoten aufgeführt. Der Text, der nach den Argumenten gezeigt wird, wurde in der "Short" Editbox eingegeben, wenn der entsprechende Nachfolger Knoten ausgewählt wurde.

Als ein vierter Paragraph wird das Funktionsergebnis gezeigt. Der Text, der hier gezeigt wird, wurde auf die selbe Weise wie die Argumente eingegeben.

Zum Schluß wird die Beschreibung gezeigt. Dieser Text wurde in der description Box von lazde eingegeben.

Das Hinzufügen neuer Units

Es gibt natürlich noch andere Units, die dokumentiert werden müssen. Wenn dies zum Beispiel eine Unit für ein Package ist, gibt es wahrscheinlich keine XML Datei, mit der sie beginnen können. Sie müssen dann ganz von vorn anfangen, aber lazde hat eine Funktion, um sie zu einem fliegenden Start zu bringen. Gehen sie zu File -> New und der folgende Bildschirm wird erscheinen:

Lazdenewdocfromfile.png

Sie beginnen indem sie dem Package einen Namen geben. Alle Units, die sie zu diesem Package hinzufügen wollen, sollten den selben Package Namen haben. Anschließend geben sie die Quelldatei ein, die sie benutzen, sie können auch nach dieser Datei suchen. Dann geben sie einen Namen für die Ausgabedatei ein. (Vergessen sie nicht den xml Dateityp!) Und drücken OK.

lazde wird dann die Grundlagen für die Dokumentation generieren. Die generierte Datei wird geöffnet und die Baumansicht wird bevölkert von allen Units, Klassen, Typen Funktionen und so weiter von ihrer Quelldatei. Jetzt sind sie bereit, einen neuen Teil von Lazarus zu dokumentieren.

Werfen sie einen Blick auf die LCL Documentation Roadmap, um zu sehen, welche Units noch dokumentiert werden müssen.

Das Endergebnis

What I experienced during the use of the program is that I would like to see how the information is shown in its final stage (as a browsable document). For this purpose lazde makes use of a utility to build all necessary HTML-files.

This utility can be started from the menu Extra -> Build. The following screen will be shown:

Lazdebuild1.png

"Package" should be the same as the name you gave when you created the xml files. For "Format" choose HTML. At "Output" you enter the path where the resulting files should be placed. Press "Add all" and all documents your were working on will be added to the project. Then go to the next to tab

Lazdebuild2.png

and enter the paths to the source files. After you have pressed build your HD will start to rattle and finally the following output will be shown on the "Build output" tab.

Building docs using command: fpdoc --package="LCL"
--output="/home/matthijs/documentatie/LCL" --format=html --content 
--descr="/home/matthijs/Projecten/Lazarus/doceditor/buttons.xml"
--descr="/home/matthijs/Projecten/Lazarus/doceditor/comctrls.xml"
--descr="/home/matthijs/Projecten/Lazarus/doceditor/dialogs.xml"
--descr="/home/matthijs/Projecten/Lazarus/doceditor/controls.xml"
--input="/home/matthijs/cvsroot/lazarus/lcl/buttons.pp"
--input="/home/matthijs/cvsroot/lazarus/lcl/comctrls.pp"
--input="/home/matthijs/cvsroot/lazarus/lcl/dialogs.pp"
--input="/home/matthijs/cvsroot/lazarus/lcl/controls.pp" 

FPDoc - Free Pascal Documentation Tool
(c) 2000 - 2003 Areca Systems GmbH / Sebastian Guenther, sg@freepascal.org

Writing 2788 pages...
Done.
Documentation successfully built.

When you go to the directory you entered at "Output" you will see a index.html file and (in this case 4) sub directories. Open index.html in your favorit browser and see the result of all your hard work on the documentation. You will be able to follow the links and read it all.

When you plan to continue working on this package of documentation, press "Save" and save the build options. You will be asked to provide a name for the file and the options will be saved. Next time you want to build the HTML-files you can just "load" them again.

Die Einreichung

Wenn sie zufrieden sind mit ihrer Arbeit, dann wollen sie diese sicher mit der Lazarus Community teilen. Alles was sie tun müssen ist einen Patch zu erstellen, ihn zu zippen und einzuschicken.

Eine kleine Notiz

Beachten sie das Folgende: lazde ist noch in Arbeit. Es ist funktionsfähig, aber noch nicht komplett fertig. Daher können noch Bugs enthalten sein, aber fühlen sie sich frei, diese zu berichtigen.