amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Programmierung > AmigaGuide Präprozessor [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2005-11-24, 21:00 h

Mazze
Posts: 263
User
Ich möchte vermeiden etwas zu erstellen, was es schon gibt.

Mir ist folgende Idee gekommen:
ein Präprozessor für AmigaGuide-Dateien mit folgenden Möglichkeiten:

Anordnung der Nodes in einer Baumstruktur. Dadurch automatische Erstellung von Inhaltsverzeichnis, und beim Klick auf "Inhalt" erfolgt Sprung zur Eltern-Node.

Filtern nach Sprache. In der Master-Datei können Nodes für mehrere Sprachen untergebracht werden. Der Präprozesser gibt dann nur die neutralen und die Nodes in einer bestimmten Sprache aus.

Kennzeichnung von Begriffen, die im Index landen.

evtl. weitere Vorschläge?

--
Meine Homepage

[ Dieser Beitrag wurde von Mazze am 24.11.2005 um 21:09 Uhr editiert. ]

[ - Answer - Quote - Direct link - ]

2005-11-25, 12:59 h

Holger
Posts: 8116
User
Ja, schreib einen XSLT-Processor, der XML nach AmigaGuide konvertiert. Dann kannst Du Deine Quellen in einem Format scheiben, daß man sowohl noch AmigaGuide, als auch Html, Pdf und DocBook konvertieren kann.
AmigaGuide zu parsen hieße, sich auf diverse von Dritten erfundenen Erweiterung, als auch die Bugs im originalen AmigaGuide-Viewer einzulassen. Außerdem müßtest Du für Dinge wie Kennzeichnung von indexierbaren Begriffen Deine eigene Syntax erfinden.
XML bietet all das bereits von Hause aus und ist dafür ausgelegt, von Software verarbeitet zu werden.

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Answer - Quote - Direct link - ]

2005-11-28, 11:46 h

Kaesebroetchen
Posts: 643
User
Wenn ich es richtig verstanden habe, dann geht es hier um eine Erweiterung für AmigaGuide bzw. ein neues Hilfeformat ?
Vielleicht könnte man sich am CHM Format orientieren. Das ist eigentlich ein ganz ordentliches Format mit Stichwortsuche, Inhaltsverzeichnis, Bildern usw.
--
http://amidevcpp.kilu.de/

[ - Answer - Quote - Direct link - ]

2005-11-28, 15:53 h

Holger
Posts: 8116
User
Zitat:
Original von Kaesebroetchen:
Wenn ich es richtig verstanden habe, dann geht es hier um eine Erweiterung für AmigaGuide bzw. ein neues Hilfeformat ?


Nein, es geht um Features, die AmigaGuide (und alle anderen Formate natürlich auch) längst besitzen, wie Inhalts- und Stichwortverzeichnis. Nur muß man die bei AmigaGuide selbst schreiben, obwohl sich automatische Generierung anbietet.

Für ein neues Format gibt es keinen Grund. AmigaGuide besticht durch seine Einfachheit und (X)Html besitzt alle Features, die man braucht.
Das CHM-Format ist letztendlich auch kein neues Format, sondern nur ein bekanntes Format in einem Archiv.

So etwas könnte man auch mittels XAD und amigaguide.lib implementieren. Was fehlt, sind tools für automatische Generierung der Verzeichnisse, eine bessere Suchfunktion und um (X)Html/XML genauso wie amigaguide-Dokumente in eigene online-Hilfen einbetten zu können.

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Answer - Quote - Direct link - ]

2005-11-28, 16:12 h

Mazze
Posts: 263
User
Hi,

ich kämpfe noch mit XML und besonders mit XSLT herum. Problem ist zum Beispiel, dass Saxon-B

<autor>Matthias
Rustler</autor>

in

@autor Matthias
Rustler

übersetzt. Ich habe noch keinen Weg gefunden, die Zeilenvorschübe heraus zu nehmen.

--
Meine Homepage

[ - Answer - Quote - Direct link - ]

2005-11-28, 18:34 h

Holger
Posts: 8116
User
@Mazze:
Versuchs mal mit normalize-space().

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Answer - Quote - Direct link - ]

2005-11-29, 01:47 h

Mazze
Posts: 263
User
Zitat:
Versuchs mal mit normalize-space().

Danke, hat geklappt.
--
Meine Homepage

[ - Answer - Quote - Direct link - ]

2005-12-01, 23:33 h

Mazze
Posts: 263
User
Hi,

Die erste Zeile meiner DTD-Datei sieht im Moment so aus:
<!ELEMENT guide (database, autor?, version?, node*)>

Ich habe dann in einer Test-XML-Datei absichtlich Fehler eingebaut (z.B. database nicht an erster Stelle). Beim Übersetzen mit Xalan-C kommt keine Fehlermeldung. Heißt das jetzt, dass die DTD keine Rolle spielt und dass ich durch den Aufbau der XSL-Datei eine bestimmte Reihefolge sicherstellen muss? Oder mache ich irgentwo einen Denkfehler?
--
Meine Homepage

[ - Answer - Quote - Direct link - ]

2005-12-02, 13:34 h

Holger
Posts: 8116
User
@Mazze:
Ich würde eher darauf tippen, daß Validieren nicht eingeschaltet war. Oder das Verhalten für den Fehlerfall war so konfiguriert, daß er weitermachen soll.
Um mehr zu sagen, braucht man auch mehr Informationen.

Jedenfalls ist es nicht die Aufgabe der XSL-Datei, mögliche Fehler zu berücksichtigen, in dem Punkt kann ich Dich beruhigen.

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Answer - Quote - Direct link - ]

2005-12-02, 13:39 h

Holger
Posts: 8116
User
Da Du auch noch Vorschlägen für Features gefragt hast: Stichworte definieren zu können, die beim ersten Auftreten im Text automatisch auf die Begriffserklärung verlinkt werden.
Was ich bei vergleichbaren Programmen immer vermisst habe, ist eine etwas intelligentere Strategie, ein Stichwort nicht bei jedem Auftreten im Text, sondern nur einmal pro Absatz/Bildschirmseite zu verlinken, da man sonst in Fachtexten zu schnell in Links erstickt.
(Vergleiche auch Wikis)

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Answer - Quote - Direct link - ]

2005-12-04, 17:14 h

Mazze
Posts: 263
User
@Holger:

Xalan hat in der Tat eine Option zum Validieren.

Mit
DTD und
XSL

kann ich aus
XML (*)

folgendes erzeugen:
Guide

Problem sind die überflüssigen Zeilenumbrüche. Es fängt gleich mit der ersten Zeile an. Hier müsste '@database' stehen, da sonst der Guide nicht erkannt wird. Wie kann ich die Zeilenumbrüche verhindern?

Einige Features wie die Erzeugung von Inhaltsverzeichnissen und Index funktionieren schon ganz gut.


* Achtung: manche Webbrowser stellen hier den konvertierten Text dar.
--
Meine Homepage

[ - Answer - Quote - Direct link - ]

2005-12-04, 22:38 h

Holger
Posts: 8116
User
@Mazze:
Der Zeilenumbruch steht in Deinem XSLT File, direkt nach dem Tag:
<xsl:template match="/guide">
@database "<xsl:value-of select="@database" />"

mach daraus:
<xsl:template match="/guide">@database "<xsl:value-of select="@database" />"
und er ist weg. Wenn die Zeile zu lang wird, ist das einfachste, sie im XML-Tag
umzubrechen:
<xsl:template match="/guide"
>
@database "<xsl:value-of select="@database" />"



Noch ein anderer Tip:
Benutze Entity-Baustein in Deiner DTD, z.B.

<!ENTITY % align-attr "align (left|center|right) 'left'">

Dann kannst Du Wiederholungen einsparen. Statt
<!ATTLIST p
align (left|center|right ) #IMPLIED
>

schreibst Du dann nur noch:
<!ATTLIST p %align-attr;>

Ich hab in dem Beispiel schon #IMPLIED durch 'left' als default-Wert ersetzt. Damit ersparst Du Dir die Fallunterscheidung im XSLT-File. Du kannst einfach schreiben:
@{j<xsl:value-of select="@align"/>}

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Answer - Quote - Direct link - ]

2005-12-04, 22:40 h

Holger
Posts: 8116
User
Das Forumskript konvertiert wie immer die einfachen Anführungszeichen. Statt ' muß also ' stehen.

mfg

[ Dieser Beitrag wurde von Holger am 04.12.2005 um 22:40 Uhr editiert. ]

[ - Answer - Quote - Direct link - ]

2005-12-05, 01:02 h

Mazze
Posts: 263
User
Zitat:
Original von Holger:
Der Zeilenumbruch steht in Deinem XSLT File, direkt nach dem Tag:


Danke, jetzt klappt es.

Zitat:
Noch ein anderer Tip:
Benutze Entity-Baustein in Deiner DTD, z.B.


Genial :rotate:
--
Meine Homepage

[ - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Programmierung > AmigaGuide Präprozessor [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved.
.