Die GuideXML-Syntax ist zugleich leichtgewichtig als auch ausdrucksstark, so dass sie schnell erlernbar ist, gleichzeitg aber alle notwendigen Eigenschaften bereitstellt, die wir für das Erstellen von Internet-Dokumenten brauchen. Die Anzahl der Tags ist auf ein Minimum beschränkt -- nur die, die wir brauchen. Dadurch wird es einfacher, Dokumente in andere Formate, wie z.B. DocBook, XML/SGML oder HTML umzuwandeln.
Das Ziel ist, das
Wenn Sie planen, Dokumentation zu Gentoo beizutragen, oder GuideXML testen
wollen, lesen Sie bitte den
Vielleicht möchten Sie auch den
Lassen Sie uns anfangen die GuideXML Syntax zu erlernen. Wir beginnen mit den einleitenden Tags, die in einem GuideXML-Dokument verwendet werden:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> <!-- $Header$ --> <guide link="/doc/de/guide.xml" lang="de"> <title>Gentoo Dokumentationsleitfaden</title> <author title="Autor"> <mail link="Ihrname@gentoo.org">Ihr Name</mail> </author> <abstract> Dieser Leitfaden erklärt Ihnen, wie Sie Dokumente mit Hilfe der neuen leichtgewichtigen Gentoo GuideXML Syntax erstellen können. Diese Syntax stellt das offizielle Format für Gentoo-Dokumente dar - auch dieses Dokument wurde mit Hilfe von Gentoo GuideXML erstellt. </abstract> <!-- The content of this document is licensed under the CC-BY-SA license --> <!-- See http://creativecommons.org/licenses/by-sa/3.0 --> <license version="3.0"/> <version>1</version> <date>2011-11-29</date>
In der ersten Zeile sehen wir den notwendigen Tag, der festlegt, dass das
Dokument in XML beschrieben ist, sowie sein DTD. Die
Das
Das
Schließlich gibt es noch den Tag
Als nächstes kommen wir zu den
Es folgen die Tags
Damit sind alle Tags genannt, die zu Beginn des Dokuments stehen sollten. Ebenso
wie die Tags
Und schließlich haben wir das
Sobald Sie die einleitenden Tags spezifiziert haben, können Sie damit beginnen,
Strukturelemente des Dokuments hinzuzufügen. Guide-Dokumente sind unterteilt in
Kapitel (chapter) und jedes Kapitel kann einen oder mehrere Abschnitte (section)
enthalten. Jedes Kapitel und jeder Abschnitt hat eine Überschrift. Hier ist ein
Beispielkapitel mit einem Abschnitt, der einen Absatz enthält. Wenn Sie dieses
XML an das XML im
<chapter> <title>Das ist mein Kapitel</title> <section> <title>Hier ist Abschnitt Eins in meinem Kapitel</title> <body> <p> Dies ist der eigentliche Textinhalt meines Abschnitts. </p> </body> </section> </chapter>
Wie Sie sehen, habe ich dem Kapitel durch das Hinzufügen eines Kindelements
Jetzt ist es an der Zeit zu lernen, wie man den eigentlichen Inhalt auszeichnet.
Hier ist der XML-Code zu einem Beispiel-
<p> Das ist ein Absatz. <path>/etc/passwd</path> ist eine Datei. <uri>http://forums.gentoo.org</uri> ist meine Lieblings-Webseite. Geben Sie <c>ls</c> ein - wenn sie wollen. Ich sollte jetzt <e>wirklich</e> schlafen gehen.</p> <pre caption="Code Sample"> Das ist Textausgabe oder Quelltext. # <i>das sind Benutzereingaben</i> Um HTML/XML lesbarer zu machen, sollten Sie verschiedene Hervorhebungen verwenden: <foo><i>bla</i></foo> <comment>So wird ein Kommentar in einen Quelltextabschnitt eingefügt</comment> </pre> <note> Das ist eine Anmerkung. </note> <warn> Das ist eine Warnung. </warn> <impo> Das ist wichtig. </impo>
Und so wird dieses
Das ist ein Absatz.
Das ist Textausgabe oder Quelltext. # das sind Benutzereingaben Um HTML/XML lesbacher zu machen, sollten Sie verschiedene Hervorhebungen verwenden: <foo>bar</foo>So wird ein Kommentar in einen Quelltextabschnitt eingefügt
Im vorherigen Abschnitt wurde eine Menge neuer Tags eingeführt -- jetzt werden
sie erläutert. Die Tags
<pre caption="Ausgabe von uptime"> # <i>uptime</i> 16:50:47 up 164 days, 2:06, 5 users, load average: 0.23, 0.20, 0.25 </pre>
In Österreich werden Stromleitungen über Land verlegt. Kommt ein Österreicher am Ort des Geschehens vorbei, kichert, geht weiter. Kommt der zweite vorbei, lacht, geht weiter. Der dritte kommt, bleibt stehen und lacht schallend - er kriegt sich gleich gar nicht mehr ein. Da fragt ihn einer der Arbeiter, was denn daran so komisch sei. "Naja", sagt er prustend, "ihr hängt den Zaun so hoch, daß alle Kühe unten durchlaufen..."
Epigrafen werden manchmal am Anfang eines Kapitels verwendet und sollen
erläutern, was folgt. Sie sind kurz gesagt einfach ein Absatz, der mit einem
<p by="ein witziger Deutscher"> In Österreich werden Stromleitungen über Land verlegt. Kommt... </p>
Die
Das
Das Element
Wie Sie sich vielleicht schon gedacht haben wird
Die
Um die Lesbarkeit von Code-Beispielen zu erhöhen, stehen innerhalb eines
Beispiel für einen farbcodierten
# Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ DESCRIPTION ="Exuberant ctags generates tags files for quick source navigation" HOMEPAGE ="http://ctags.sourceforge.net" SRC_URI ="mirror://sourceforge/ctags/${P}.tar. gz" LICENSE ="GPL-2" SLOT ="0" KEYWORDS ="~mips ~sparc ~x86" IUSE ="" src_compile() {econf --with-posix-regexemake ||die "emake failed" }src_install() {make DESTDIR ="${D}" install ||die "install failed" dodoc FAQ NEWS READMEdohtml EXTENDING.html ctags.html }
Wir hatten uns den Tag
Kürzere Formen machen es einfacher Namen und Email-Adressen von
Gentoo-Entwicklern zu benutzen. Sowohl
Dies ist besonders nützlich, wenn Sie einen Entwickler benennen wollen, dessen
Namen "komische" Zeichen enthält, die Sie nicht tippen können.
Der Tag
Sie sollten kein
Bitte vermeiden Sie das
Und so können Sie Grafiken in ein Dokument einfügen:
GuideXML stellt eine vereinfachte Tabellensyntax, vergleichbar mit der von HTML,
bereit. Um eine Tabelle zu erzeugen, benutzen Sie den Tag
Außerdem unterstützen sowohl Tabellenkopf (
Zusätzlich können die Tabelleninhalte (
| Diese Überschrift umfasst 4 Spalten | |||
|---|---|---|---|
| Diese Überschrift umfasst 6 Zeilen | |||
| Überschrift 2x2-Block | |||
Um eine sortierte oder unsortierte Liste zu erzeugen, verwenden Sie einfach
die gleichwertigen Tags im XHTML-Stil:
Definitionslisten (
Die folgende Liste wurde von
In GuideXML ist es wirklich einfach, Verweise zu anderen Teilen des Dokuments
mit Hilfe von Hyperlinks zu erstellen. Sie können einen Verweis zu
Allerdings ändern sich viele Anleitungen öfters und solches "Zählen" kann dann
zu fehlerhaften Links führen. Um dem abzuhelfen, kann ein Name für ein
<chapter id="foo"> <title>Das ist foo!</title> ... <p> Weitere Informationen finden Sie im <uri link="#foo">foo Kapitel</uri> </p>
Ein
Wenn Sie ein Dokument als obsolet markieren, sollten Sie in Betracht ziehen
einen Link zu einer neueren Version hinzuzufügen. Das
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> <!-- $Header$ --> <guide disclaimer="obsolete" redirect="/doc/en/handbook/handbook-x86.xml"> <title>Gentoo x86 Installation Guide</title> <author title="Author"> ...
FAQ-Dokumente müssen mit einer Liste von Fragen mit Links zu deren Antworten
beginnen. Das Erstellen einer solchen Liste ist sowohl zeitintensiv als auch
fehleranfällig. Die Liste kann automatisch erstellt werden, wenn Sie ein
Ein schneller Blick auf eine
Für umfangreichere Dokumentationen, wie bei den
Die erste Änderung ist, dass ein "Master" Dokument gebraucht wird. Dies enthält keinen Inhalt, aber Links zu den einzelnen Dokumentationsmodulen. Die Syntax unterscheidet sich nur wenig von GuideXML:
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE book SYSTEM "/dtd/book.dtd"> <!-- $Header$ --> <book link="example.xml"> <title>Example Book Usage</title> <author...> ... </author> <abstract> ... </abstract> <!-- The content of this document is licensed under the CC-BY-SA license --> <!-- See http://creativecommons.org/licenses/by-sa/3.0 --> <license version="3.0"/> <version>...</version> <date>...</date>
So weit gibt es keine wirklichen Unterschiede (sieht man einmal vom Gebrauch
des
<part> <title>Teil Eins</title> <abstract> ... </abstract>(Mehere Kapitel erstellen) </part>
Jeder Teil (part) wird von einem
In jedem Teil (part) definieren Sie die individuellen
<chapter> <title>Kapitel Eins</title> <abstract> Dies ist eine kurze Erklärung von Kapitel Eins. </abstract> <include href="Pfad/zu/Kapitel-Eins.xml"/> </chapter>
Der Inhalt eines individuellen Kapitels wird wie folgt strukturiert:
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE sections SYSTEM "/dtd/book.dtd"> <!-- $Header$ --> <!-- The content of this document is licensed under the CC-BY-SA license --> <!-- See http://creativecommons.org/licenses/by-sa/3.0 --> <sections> <version>...</version> <date>...</date>(Erstellen Sie die einzelnen <section> und <subsection>) </sections>
Innerhalb jedes Kapitels können Sie
Jedes einzelne Kapitel soll sein eigenes Datums- und Versionselement besitzen. Das aktuelle Datum aller Kapitel und des Masterdokuments wird angezeigt, wenn ein Benutzer durch alle Teile des Buchs blättert.
Ab und zu werden die selben Werte immer wieder in mehreren Teilen des Handbuchs wiederholt. Globale Such- und Ersetzungsoperationen tendieren dazu, einige Änderungen zu vergessen oder führen ungewollte ein. Außerdem kann es nützlich sein, unterschiedliche Werte zur Benutzung in geteilten Kapiteln zu definieren, davon abhängig, welches Handbuch das Kapitel enthält.
Globale Werte können in einem Handbuch-Hauptdokument definiert und in allen eingebundenen Kapiteln benutzt werden.
Um globale Werte zu definieren, fügen Sie ein
Das folgende Beispiel definiert drei Werte in einem Handbuch-Hauptdokument:
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE book SYSTEM "/dtd/book.dtd"> <!-- $Header$ --> <book> <title>Example Book Usage</title> <values> <key id="arch">x86</key> <key id="min-cd-name">install-x86-minimal-2007.0-r1.iso</key> <key id="min-cd-size">57</key> </values> <author...> ... </author> ...
Die definierten Werte können dann im gesamten Handbuch mit dem Inline-Element
<p> The Minimal Installation CD is called <c><keyval id="min-cd-name"/></c> and takes up only <keyval id="min-cd-size"/> MB of diskspace. You can use this Installation CD to install Gentoo, but <e>only</e> with a working Internet connection. </p>
Um das Leben unserer Übersetzer zu vereinfachen, benutzen Sie nur die
eigentlichen Werte, d.h. Inhalt, der nicht übersetzt werden muss. Zum Beispiel
haben wir den Wert
Kapitel, die von einigen Handbüchern, wie unserem
Die Bedingung muss ein
Das folgende Beispiel benutzt den Wert
<body test="contains('AMD64 x86',func:keyval('arch'))">
<p>
Dieser Absatz trifft auf die Architekturen x86 und AMD64 zu.
</p>
<p test="func:keyval('arch')='x86'">
Dieser Absatz trifft nur auf die Architektur x86 zu.
</p>
<p test="func:keyval('arch')='AMD64'">
Dieser Absatz trifft nur auf die Architektur AMD64 zu.
</p>
<p test="func:keyval('arch')='PPC'">
Dieser Absatz wird niemals gesehen werden!
Der komplette Körper wird aufgrund der ersten Bedingung ausgelassen.
</p>
</body>
<body test="contains('AMD64 PPC64',func:keyval('arch'))">
<p>
Dieser Absatz trifft auf die Architekturen AMD64, PPC64
und PPC zu, da die Zeichenkette 'AMD64 PPC64' 'PPC' enthält.
</p>
<note test="func:keyval('arch')='AMD64' or func:keyval('arch')='PPC64'">
Diese Notiz trifft auf die Architekturen AMD64 und PPC64 zu.
</note>
</body>
Da jede Gentoo Dokumentation eine große Anstregung ist und viele Leute die Dokumentation ändern, ist ein Coding Style notwendig. Ein Coding Style beinhaltet zwei Teile. Der erste (Interner Coding Style) erläutert wie die XML-Tags platziert werden sollen, der zweite beschreibt den Inhalt: wie man die Leser nicht verwirrt.
Beide Teile werden jetzt erläutert.
Neue Zeilen müssen direkt nach
Leere Zeilen müssen direkt nach
Ein Zeilenumbruch muss nach 80 Zeichen angewandt werden, außer im
Einrücken soll nicht benutzt werden, außer in XML Konstruktionen
bei denen die Elterntags
Wenn ein Zeilenumbruch in ein
Ein Beispiel für Einrückung ist:
<table>
<tr>
<th>Foo</th>
<th>Bar</th>
</tr>
<tr>
<ti>Das ist ein Beispiel für Einrückung</ti>
<ti>
Wennn Text nicht in eine 80 Zeichen lange Zeile passt, müssen
Sie Einrückung benutzen, wenn das Parent Tag es erlaubt
</ti>
</tr>
</table>
<ul>
<li>Erste Option</li>
<li>Zweite Option</li>
</ul>
Attribute sollen keine Leerzeichen zwischen den Attributen, dem "=" und dem Wert haben. Ein Beispiel:
Falsch : <pre caption = "Attribute">Richtig: <pre caption="Attribute">
Innerhalb von Tabellen (
Jeder Satz, auch innerhalb von Tabellen und Listings, sollte mit einem Großbuchstaben beginnen.
<ul> <li>Kein Punkt</li> <li>Mit Punkt. Mehrere Sätze, Sie erinnern sich?</li> </ul>
Codelistings sollten
Benutzen Sie soweit möglich
Wenn Sie etwas innerhalb eines
(Ersetzen Sie "john" mit Ihrem Benutzer Namen) # id john
GuideXML wurde speziell dafür entwickelt, es Entwicklern zu ermöglichen, mehr
Zeit mit dem Schreiben der Dokumentation und weniger mit dem Erlernen der
eigentlichen XML-Syntax zu verbringen. Wir hoffen, dass dies den Entwicklern
erlaubt, qualitativ hochwertige Gentoo-Dokumentation zu schreiben. Werfen Sie
auch einen Blick auf die