Lazarus Documentation Editor/de

From Lazarus wiki
Revision as of 17:11, 20 October 2005 by Swen (talk | contribs) (→‎Das Ergebnis)
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

There are of course other units that need to be documented. If it is for instance a unit for some package, chances are there is no xml file to start with. You have to start from scratch then, but lazde has a function to get you off to a flying start. Just go to File -> New and the following screen will appear:

Lazdenewdocfromfile.png

You start by giving the package a name. All units you want to add to this package should have the same package name. Afterwards you enter the source file to use; you can browse to this file as well. Then enter a name for the output file. (Do not forget the xml extension!) And press OK.

lazde will then generate the basics for the documentation. The generated file will be opened and the treeview will be populated by all units, classes, types, functions and so on from your source file. Now you are ready to start documenting a new part of Lazarus.

Have a look at LCL Documentation Roadmap to see which units still need to be documented.

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.