amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > AmigaGuide Präprozessor [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

24.11.2005, 21:00 Uhr

Mazze
Posts: 263
Nutzer
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. ]

[ - Antworten - Zitieren - Direktlink - ]

25.11.2005, 12:59 Uhr

Holger
Posts: 8116
Nutzer
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.

[ - Antworten - Zitieren - Direktlink - ]

28.11.2005, 11:46 Uhr

Kaesebroetchen
Posts: 643
Nutzer
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/

[ - Antworten - Zitieren - Direktlink - ]

28.11.2005, 15:53 Uhr

Holger
Posts: 8116
Nutzer
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.

[ - Antworten - Zitieren - Direktlink - ]

28.11.2005, 16:12 Uhr

Mazze
Posts: 263
Nutzer
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

[ - Antworten - Zitieren - Direktlink - ]

28.11.2005, 18:34 Uhr

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

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

[ - Antworten - Zitieren - Direktlink - ]

29.11.2005, 01:47 Uhr

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

Danke, hat geklappt.
--
Meine Homepage

[ - Antworten - Zitieren - Direktlink - ]

01.12.2005, 23:33 Uhr

Mazze
Posts: 263
Nutzer
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

[ - Antworten - Zitieren - Direktlink - ]

02.12.2005, 13:34 Uhr

Holger
Posts: 8116
Nutzer
@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.

[ - Antworten - Zitieren - Direktlink - ]

02.12.2005, 13:39 Uhr

Holger
Posts: 8116
Nutzer
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.

[ - Antworten - Zitieren - Direktlink - ]

04.12.2005, 17:14 Uhr

Mazze
Posts: 263
Nutzer
@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

[ - Antworten - Zitieren - Direktlink - ]

04.12.2005, 22:38 Uhr

Holger
Posts: 8116
Nutzer
@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.

[ - Antworten - Zitieren - Direktlink - ]

04.12.2005, 22:40 Uhr

Holger
Posts: 8116
Nutzer
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. ]

[ - Antworten - Zitieren - Direktlink - ]

05.12.2005, 01:02 Uhr

Mazze
Posts: 263
Nutzer
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

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > AmigaGuide Präprozessor [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.