AWPB-Tools Help Compiler (Version: 0.7)

Anwendungen, Tools, Userlibs und anderes nützliches.
cptdark
Beiträge: 56
Registriert: 28.02.2010 14:13
Kontaktdaten:

AWPB-Tools Help Compiler (Version: 0.7)

Beitrag von cptdark »

Hallo...

BitBucket: https://bitbucket.org/cptdark/awpbthc

Webseite: http://planet-rk.bplaced.net/web/helpcompiler.html

(Hinweis: Bei mir schlägt Avast aktuell auf die 32-Bit Windows-Exe an (schon beim kompilieren), und Chrome bemängelt den Download :( )

Da ich bei meinen AWPB-Tools auf eine Art OOP setze, benötigte ich eine Möglichkeit, die Dokumentation einfach zu entwerfen. Der HelpCompiler von PureBasic ist ja nicht schlecht, aber wenn ich z.B. ein \ vor eine Prozedur setzen möchte, bzw mit "Klasse\Prozedur()" benennen möchte, funktioniert das ganze nicht.

Das Tool liegt für Windows und Linux fertig kompiliert vor.

Herausgekommen ist ein Tool, das die Dokumentation in einer XML-Datei erwartet und daraus HTML-Dateien im Stil der PB Doku erzeugt. Es werden ebenfalls Projektdateien für den MS Help Workshop erzeugt, so dass das Projekt dann direkt in eine CHM Datei umgewandelt werden kann.

Es wird (bei Bedarf) noch erweitert werden. Das Programm ist Freeware und darf nach Belieben genutzt werden. Änderungen in der Syntax sind aber noch möglich.

Änderungen: references-Tag, parameters-Tag entfernt, macro hinzugefügt, Konstanten werden alle in der selben HTML-Datei aufgelistet, Splittung in mehrere Dateien möglich (z.B. eine pro library), Bilder einbinden, Anpasung der feststehenden Überschriften der erzeugten Dateien, Index-Erstellung.

Screenshot: Bild

Quelltext-Beispiel:

Code: Alles auswählen

<doc lang="de" title="Tools">
	<author>
		Name des Autors
	</author>
	<license>
		Lizenz des Sammlung
	</license>
	<copyright>
		(c) by mir
	</copyright>
	<description>
		Beschreibung des Gesamtpaketes
	</description>
	<library name="Bibliothek1">
		<keywords>
			Bibliothek; Code; Scanner; Parser
		</keywords>
		<structure name="Struktur1">
			<description>
			<![CDATA[ 
				Beschreibung der <b>Struktur</b><br><br>
				In diesem Fall mit HTML-formatierten Code.
				Siehe auch: @reflibrary(Bibliothek2)			
			 ]]> 
			</description>		
			<element offset="0" name="index" type="i">Index</element>
			<element offset="4" name="*name">Zeiger auf Name</element>
			<element offset="8" name="size" type="l">Größe des Inputs</element>
		</structure>
		<constant name="Konstante1">
			<description>Eine Konstante.</description>
			<keywords>
				Const; Parser
			</keywords>
		</constant>	
		<constant name="Konstante2">
			<description>Noch eine Konstante.</description>
			<keywords>
				Scanner; Parser
			</keywords>
		</constant>	
		<command name="Prozedur1">
			<description>
				Diese Prozedur macht eigentlich das selbe wie diese hier: @refcommand(Prozedur2,,Bibliothek1) @linebreak
				die Prozedur @refcommand(Prozedur1, Klasse1, Bibliothek1) macht ebenfalls das selbe. Dazu siehe auch die Klasse @refclass(Klasse1, Bibliothek1).@linebreak
				In @reflibrary(Bibliothek2) werden @italicähnliche@enditalic Funktionen enthalten sein.
				@paragraph
				Ein @bold extra Paragraph @endbold.
				@endparagraph
				@paragraph
				Und noch einer; @@ wird in eMails benötigt.
				@lt und @gt werden in HTML benötigt.
				@endparagraph
			</description>
			<arg index="1" name="index" type="i">Index</arg>
			<arg index="2" name="text" type="s">der zu bearbeitende Text</arg>
			<arg index="3" name="*target" default="#Null">@boldZeiger@endbold auf das Ziel, optional</arg>				
			<result name="result" type="i">@const(True) bei Erfolg, sonst @const(False)</result>
			<reflibrary name="Bibliothek2" />
			<refclass name="Klasse1" lib="Bibliothek1" />
			<refcommand name="Prozedur1" class="Klasse1" lib="Bibliothek1"/>
			<refconstant name="Konstante1" lib="Bibliothek1" />
			<refstructure name="Struktur1" lib="Bibliothek1" />
			<os>Windows</os>
			<os>Linux</os>
			<example name="test1.pb">
; Muss links anfangen, da 1:1 übernommen
For a = 1 to 20
	b + 1
Next
			</example>
		</command>		
		<command name="Prozedur2">
			<description>
				Nur diese Beschreibung.
			</description>
		</command>
		<class name="Klasse1">
			<command name="Prozedur1">
				<description>
					Dies ist @func(Prozedur1) in @code Klasse1@endcode.@linebreak
					Nützlich ist ein Verweis auf @refstruct(Struktur1, Bibliothek1)
				</description>
				<arg index="1" name="index" type="i">Index</arg>
				<arg index="2" name="text" type="s" default='"Standardwert"'>der zu bearbeitende Text</arg>
				<arg index="3" name="*target" default="#Null">@boldZeiger@endbold auf das Ziel, optional</arg>				
				<result name="*result">Zeiger auf das Ergebnis</result>
				<os>Windows</os>
				<keywords>
					Klasse1; Prozedur1
				</keywords>					
			</command>
			<description>
				Dies ist eine Klasse mit einer Prozedur.@linebreak
				Konstanten und Strukturen können nicht in einer Klasse definiert werden.@linebreak
				Funktionen sind identisch in der Definition wie außerhalt.
			</description>		
		</class>
		<description>
			Dies hier ist Bibliothek1, die Funktionen, Klassen, Strukturen und Konstanten enthält.@linebreak
			@italicDas alles ist hier drunter aufgelistet.@enditalic
		</description>
	</library>
	<library name="Bibliothek2">
		<description>
			Eine zweite       Bibliothek des Toolsets, diese enthält aber bis auf die Beschreibung noch nichts.@linebreak
			Diese Zeile enthält wirklich @spc@spc@spc@spc@spc@spc@spc@spc@spc mehrere Leerzeichen.
		</description>
		<keywords>Bibo2</keywords>
	</library>
</doc>
Sollte etwas auffallen, bitte mitteilen. Alle Eventualitäten konnte ich nicht testen ;)
Manjaro x64 * Windows 10 x64 * PureBasic 5.50
planet-RK