vishia - WikiFormat

vishia - WikiFormat

Inhalt


1 Formatierung von flachen Texten wie bei Wikipedia

Topic=.WikiFormat.

ulStyle=list-wide

.

1.1 Motivation

Topic=.WikiFormat.concept.

ulStyle=list-wide

Als flache Texte sind reine ASCII-Texte zu bezeichnen. Trotz über 20-jähriger Geschichte der Entwicklung von Wysiwyg (What you see is what you get - Ziel der druckreifen Texteditierung) sind solche Flachtexte häufiger anzutreffen als man denkt:

  • Quellcodes von Programmiersprachen sind üblicherweise als Flachtext geschrieben.

  • Descriptionfelder bei verschiedenen Tools können manchmal eine spartanische Formatierung, oft nicht standardisiert. Flachtext ist das sicherste.

  • Eingabefelder bei Excel sind ebenfalls flachtextartig.

  • Eingabefenster für Texte im Internet sind zunächst systembedingt Flachtext. Bestimmte Anbieter gestatten die Benutzung von Eingabehilfen, um Formatierungen umzusetzen. Hier ist jedoch nicht unbedingt ein Standard auszumachen. Letzlich wird der Inhalt auch nur als rein-ASCII geführt, lediglich die Darstellung im Browser wird mithilfe von Javascript verbessert.

Flachtext allgemein Flachtext kann man auch mit etwas abwertenden und gleichzeitig anerkennenden Touch als POT - Plain Old Text bezeichnen, ähnlich wie in der C++-Programmierung alte C-Strukturen als POD - Plain Old Data bezeichnet werden. Altes ist oft gediegen. Ähnlich wie in der Programmierung trotz allen Hi-Level-Tools letzlich Daten in Bytes abgespeichert werden - hier liegt die Wahrheit, wichig für Schnittstellen fremder Systeme - ist ein Austausch von textuellen Informationen über Toolgrenzen hinweg zeitlos mit Flachtext oder POT möglich. XML wird übrigens auch als Flachtext gespeichert.

Formatierung bei Wikipedia-edit Interessant ist es, dass beim weit verbreiteten Online-Lexikon Wikipedia, bei dem jedermann das Editieren von Inhalten zugemutet wird, es zwar Formatierungshilfen gibt, jedoch beim Editieren mit Flachtext gearbeitet wird. Bei Wikipedia ist es wichtig, dass die Texte ein gutes Erscheinungsbild haben. Gerade deshalb ist auf den zweiten Blick die Flachtexteditierung besser geeignet als eine angepasste Wysiwyg-Editieroberfläche. Das liegt auch daran, dass eine gewisse Beschränkung der Formatierungsmöglichkeiten auf ein sinnvolles Maß besser ist als eine freizügige Wunsch-Gestaltung. Würde letzteres angeboten, dann hätte wohl jeder Wiki-Artikel ein anderes Aussehen. Insgesamt ergibt das keine gute Wirkung.

Das Prinzip der Formatierung bei Wikipedia ist hier als Idee übernommen und weiterentwickelt, um in den oben genannten Bereichen flachen Text formatieren zu können so dass bei einer Dokumentationserzeugung in HTML oder Word oder PDF eine angenehme Textformatierung erscheint.

1.2 Grundsätzliches zur Formatierung in XHTML

Topic=.WikiFormat..

ulStyle=list-wide

.

1.3 Formatierung von Zeichen innerhalb eines Absatzes

Topic=.WikiFormat.inlineFormating.

ulStyle=list-wide

Entsprechend den Richtlinine der sparsamen Gestaltung weniger ist mehr braucht man nicht beliebig viel. Das ist konform mit den Richtlinien in XHTML.

Bei Wikipedia wird als Zeichenformatierung folgendes unterstützt, dabei ist allerding einiges anzumerken:

Wikipedia kennt noch einige weitere Formatierungen innerhalb von Texten, die hier (zunächst) nicht betrachtet werden. Die eben vorgestellten sind die wichtigsten.

Zusätzlich sind aber im hier benannten Wikiformat noch einige weitere Formatierungen inzeiliger Art möglich, die bei Wikipedia nicht unterstützt werden, aber als notwendig angesehen werden:

  • ,,code oder Tastatur,, gekennzeichnet mit jeweils zwei Komma links und rechts. Ein drittes Komma, was aus textuellen Gründen oft notwendig ist wie bei code, der in einem Nebensatz ja auch erläutert werden möchte, funktioniert. Er wird wie hier stehend richtig umgesetzt. Das gilt auch für kursiv' mit nachfolgendem Apostroph usw.

    In einem technischem Text muss sehr häufig etwas als Eingabewort, Syntaxbezeichnung, Schlüsselwort einer Programmiersprache bezeichnet werden. XHTML sieht dafür <xhtml:code> für Quelltext aus Programmiersprachen und <xhtml:kbd> als Tastatureingaben vor. Diese Feinunterscheidung ergibt sich oft aus dem Kontext. Daher wird nur die <xhtml:code>-Variante unterstützt. Es ist aber in Erwägung gezogen, dass wegen der XHTML-Konformität mit drei Kommata nacheinander die <xhtml:kbd>-Variante auch unterstützt werden sollte. Man sollte hier dem folgen, was ein W3C in bezug auf XHTML sich überlegt hat bzw. was langjährig in HTML üblich ist. Warum Wikipedia die ,,code oder Tastatur,, -Schreibweise nicht anbietet - es mag sein, dass ein harter Schriftwechsel auf Monospaced-Schrift im Textblock gestalterisch in einem Lexikon eher störend wirken könnte. In diesem Artikel ist es jedenfalls benutzt. Allerdings ist die oft gebräuchliche Courrier-Schrift nicht sehr schön anzusehen und läuft auch recht breit. Hier sollte eine style-Festlegung auf eine schönere Monospaced-Schrift helfen.

  • [[!linklabel|link text]]: Das Ausrufezeichen nach den öffnenden eckigen Klammern zeichnet einen Link als Absolut-Link aus. Bei Wikipedia soll ein absoluter Link nicht im Text erscheinen , sondern nur am Ende eines Artikels als Verweis. Dort wird automatisch http:... erkannt als Absolutlink. Für eine einfache Textcodierung außerhalb des Wikipedia-Lexikons soll aber ein absoluter Link mit ähnlichen Mitteln ausgedrückt werden wie ein relativer Link. Im XHTML wird damit ein <xhtml:a href="linklabel">link text</a> erzeugt. Wie beim Relativlink kann der |link text auch weggelassen werden.

  • \'\'Text...: Es gibt die Möglichkeit des Einsatzes eines Backslashes zur Formulierung von speziellen Codes. Das bedeutet allerdings, dass ein Backslash in einem Text mit zwei Backslashes nacheinander notiert werden muss. Als Hinweis sei hier angemerkt, dass der Trenner zwischen Verzeichnisnamen in einem File-Pfad bei Hyperlinks üblicherweise ein Slash / ist. Damit benötigt man den Backslash kaum in technischen Texten. Die Backslash-Verwendung entspricht der Verfahrensweise in Quellen der gängigen Programmiersprachen C, C++, Java. Sie ist gegenüber der bei XML üblichen Notation mit &code; vorgezogen weil meist auch einfacher lesbar. Das Backslash kann damit genutzt werden, um eine Folge von Spezialzeichen wie '' nicht als solche zu erkennen sondern als normaler Text darzustellen. Schreibt man \'\', dann erscheint im Ausgabetext ''. Damit ist es möglich, diese Steuerzeichen im Text selbst darzustellen. Das ist verwendet insbesondere bei der Erstellung dieses hier stehenden Textes, ohne dieses wäre eine Selbstdokumentation von Steuerzeichen in einem steuerzeichensensitivem Text nicht möglich.

    Grundsätzlich ist festzustellen, das es die Möglichkeit des Konfliktes zwischen den Spezialzeichen für die Formatierungskennzeichnung und einer notwendigen Benutzung dieser Zeichenfolgen geben könnte. Das sind aber Sonderfälle, die insbesondere in diesem Artikel, der diese Schreibweisen erläutern soll, auffallen. In einem normalen Text kommt es nirgends zu einer Folge von zwei Kommata, mehrere Apostrophe nacheinander, zwei eckige Klammern nacheinander oder dergleichen. Daher lassen sich diese Steuer-Zeichenfolgen für alle Normalfälle sehr gut für Formatierungen nutzen.

1.4 Formatierung von Absätzen

Topic=.WikiFormat.paraFormating.

ulStyle=list-wide

Auch hier sollte die Richtlinine der sparsamen Gestaltung weniger ist mehr gelten. Bei Wikipedia wird als Absatzformat folgendes unterstützt:

  • Generell gilt, dass ein Zeilenumbruch ignoriert wird, wenn die Folgezeile nicht mit den bestimmten Sonderzeichen für Absatzformate beginnen oder eine Leerzeile danach folgt. Damit können geschlossene Absätze auch mit beliebigen Zeilenumbrüchen geschrieben werden. Das ist wichtig wenn ein Editor eine fortlaufende Zeile nicht umbricht oder beispielsweise bei Dokumentation von Software.

1.4.1 Einfache Listen

Topic=.WikiFormat.paraFormating..

ulStyle=list-wide

Wie bei Wikipedia ist folgendes möglich:

  • *Listitem: Beginnt eine Zeile am linken Rand mit einem Stern, dann wird dies als ein Item einer Liste erkannt. Abhängig davon, ob unmittelbar davor bereits weitere Listitems stehen oder nicht, wird das notwendige <xhtml:ul> generiert, das Listitem steht dann innerhalb <xhtml:li>. Ein Leerzeichen nach dem Stern wird ignoriert.

  • **Listitem geschachtelt: Zwei Stern nacheinander am Zeilenanfang sind die Kennzeichnung für eine Liste in der zweiten Ebene. Diese macht nur Sinn innerhalb eines Listitems der ersten Ebene. Das Ganze geht bis maximal zur sechsten Ebene.

  • #Listitem numeriert: Das erzeugt eine numerierte Liste <xhtml:ol><xhtml:li> in adäquater Form.

  • ##Listitem numeriert geschachtelt: Selbstverständlich sind auch hier mehrere Schachtelungsebenen möglich.

  • #*Listitem geschachtelt: Die Listitems numeriert und unnumeriert sind beliebig mischbar. Es wird jedesmal die richtige Kombination <xhtml:ol><xhtml:li><xhtml:ul>... angelegt.

Wikipedia unterstützt nicht mehrere Absätze unterhalb eines Listitems. Das ist jedoch ein wichtiges Gestaltungsmittel und in XHTML mit <xhtml:li><xhtml:p>...</xhtml:p><xhtml:p>...</xhtml:p> ebenfalls vorgesehen. Dazu sei auch angemerkt, dass sowohl in HTML als auch in XHTML es nicht eindeutig geklärt ist, ob ein <li> inzeiligen Text enthalten sollte oder Blockelemente. Blockelemente sind jedenfalls notwendig und üblich, bereits eine verschachtelte Liste ist ein Blockelement. Das inzeilige Elemente in <li> gehen, ist eher ein Zugeständnis an eine einfachere Textgestaltung. Die Wirkung in HTML ist meist so, dass bei inzeiligem Inhalt in <li> Abstände, die sonst zwischen Absätzen vorhanden sind (in CSS geregelt), fehlen. Im Wikiformat-Konverter von vishia werden immer innerhalb von <xhtml:li> Blockelemente, als <xhtml:p> bei einem einfachen Text, erzeugt. Die Gestaltung von Abständen zwischen Listenpunkten obliegt dann den Formatvorlagen/CSS-Styles.

Um einen weiteren Absatz in einem Listenpunkt zu erzeugen, wird bei Wikipedia zu einem Trick gegriffen: *: am Anfang einer Zeile erzeugt einen etwas eingerückten weiteren Absatz zum selbigen Listenpunkt. Genauer wird aber damit ein <dd>-Element einer Definitionsliste erzeugt. Das erscheint dann etwas eingerückt, weil dies bei den meisten Browsern die Voreinstellung ist (kann mit anwenderspezifischen CSS geändert werden) und es gehört zum selben Listenpunkt. Genau genommen ist das aber ein Durcheinander von Listen-Elementen.

Bei beim vishia-Wikiformat-Konverter ist eine systematische Lösung wie folgt gegeben:

  • *+Absatz erzeugt einen weiteren Absatz zum gleichen Listenpunkt. Da auch der erste Absatz grundsätzlich in <xhtml:p> gefasst ist, resultiert ein harmonisches Bild von Blockelementen. Das + kann selbstverständlich nach allen Listitems gesetzt werden, also auch nach #+, :+ (Definitionslistentext, siehe unten) und in mehreren Schachtelungsebenen.

1.4.2 Definitionsliste

Topic=.WikiFormat.paraFormating..

ulStyle=list-wide

Eine Definitionsliste besteht aus zwei Teilen pro Listitem, dem Definitionsteil und dem erläuterten Textteil. Ersterer ist in <xhtml:dt> gefasst und darf nur inzeiligen Text enthalten (also nicht mehrere Absätze, Tabellen und dergleichen, aber beliebig langen Text), der Textteil soll Blockelemente enthalten. Das ist im einfachsten Fall ein Absatz <xhtml:p>, aber auch hier kann es eine beliebige Schachtelung von Listen, Tabellen und dergleichen geben.

Wikipedia sieht folgendes vor:

  • ;Definition: Nach einem Semikolon am Zeilenanfang folgt der Definitionsteil.

  • :Definitionstext: Nach einem Doppelpunkt folgt der Definitionstext.

1.5 Tabellen

Topic=.WikiFormat..

ulStyle=list-wide

Auch Tabellen werden identisch sowohl bei Wikipedia-Eingaben als auch bei vishia unterstützt. Die grundsätzliche Syntax einer Tabelle sieht wie folgt aus:

 {|!!Tabellenkopf  !!2. Spalte              !!3. Spalte
 |-||1. Zeile      ||2. Zelle der 1. Zeile  ||3. Zelle
 |-||Zeile         ||2. Zelle der Zeile     ||3. Zelle
 |}
 

Wie das einfache Beispiel zeigt, sind kurze einfache Tabellen damit leserlich darstellbar. Man kann aber das gleiche wie folgt schreiben:

 {|
 !Tabellenkopf  
 !2. Spalte              
 !3. Spalte
 |-
 |1. Zeile      
 |2. Zelle der 1. Zeile  
 |3. Zelle
 |-
 |Zeile         
 |2. Zelle der Zeile     
 |3. Zelle
 |}

Dann steht die Tabellenstruktur quasi am linken Rand. Man kann in die einzelnen tabellenzellen beliebig viel Text einschreiben, die Spalteneinteilung ist jetzt nicht mehr sichtbar. Aber die Struktur ist noch erkennbar. Nun gilt aber auch hier die Regel der Absätze: Eine neue Zeile beginnend mit keinem Sonderzeichen wird wie eine Fortsetzung der alten Zeile gewertet. Damit kann man also beliebig viele Zeilenumbrüche einfügen. Damit wird die Tabelle nicht mehr so gut leserlich. Hilfreich sind dann Leerzeilen vor jedem Tabellensteuerzeichen.

Es gilt noch eine weitere Regel, speziell für Tabellen: Der gesamte Inhalt einer Zelle kann geschachtelt wiederum aus Listen, Tabellen, Spezialblöcken <pre> bestehen. Damit bekommt man beliebige Tabellen hin, aber nicht mehr sehr übersichtlich.

Formatierungsmöglichkeiten:

  • style der Tabelle TODO

  • Breiten TODO

1.6 Style-Angaben

Topic=.WikiFormat..

ulStyle=list-wide

Diese Möglichkeit ist nicht bei Wikipedia gegeben, aber bei vishia-Flachtexten:

 @element.class="style"
 

Wird ein @ am Beginn einer Zeile erkannt, dann wird ein Attributwert für das angegebene Attribut und Element gespeichert und bei jeder nachfolgenden Erzeugung des genannten Elementes hinzugefügt. Das ist eine ganz allgemein gehaltene Möglichkeit mit der Syntax:

 @element.attribute="value"
 

Wird wie oben angegeben als Attribut class angegeben, dann bezieht sich der value auf das Attribut class. Das ist aber das in XHTML übliche Attribut für Styleangaben. Verwendet wird hier die indirekte Formatierung.

1.7 Links

Topic=.WikiFormat..

ulStyle=list-wide