vishia - WikiFormat

vishia - WikiFormat

Inhalt


1 Formatierung von flachen Texten wie bei Wikipedia

1.1 Konzept der Formatierung in Flachtexten

Topic=.WikiFormat.concept.

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 Formatierung in XHTML versus Wikipedia-Formatierung

Topic=.Xhtml.Usage.

XHTML ist die XML-like Manifestierung des "alten" HTML. Einerseits ist XHTML als Ersatz von HTML die Input-Sprache für HTML-Browser. Andererseits ist XHTML aber so strukturiert, dass damit semantisch klare Informationen zu Texten formulierbar sind. Im Vergleich zu HTML - HTML unterstützt eine Vielzahl von Darstellungen, bei jedem Browser ein wenig anders. Bei XHTML hat man zusammengefasst, standardisiert, vereinfacht. Die indirekte Formatierung mit CSS ist quasi Pflicht. Auch wenn man keine CSS angibt, so gelten dann dennoch die Standardwerte der Darstellung.

Topic=.WikiFormat.WikiVsXhtml.

Bei Wikipedia ist die Flachtextformatierung Mittel zum Zweck. Der Zweck ist die Textdarstellung nach einfachen und festen Richtlinien. Bei der vishia-WikiFormat-Darstellung ist der Zweck aber nicht vordefiniert. Im Vordergrund steht die semantische Auszeichnung von Textinhalten, nicht die darstellerische. Dem entspricht das Konzept von XHTML. Darstellung ist Sache von CSS-Stylesheets. Daher erfolgt bei vishia-WikiFormat eine Umsetzung von Flachtextformatierung nach XHTML-Konzepten. Nicht die Darstellung steht im Vordergrund, sondern die inhaltliche Aussage zu Textpassagen. Das widerspricht nicht unbedingt dem Wikipedia-Ansatz. Auch dort ist die Formatierung zunächst verbunden mit der inhaltlichen Aussage. Nur ist die Darstellung für den einen Zweck eben vorbestimmt.

Ein Beispiel dazu: Die Formatierung ''Textpassage'' soll bei Wikipedia verwendet werden für Begriff-Hervorhebungen und Zitate. Das diese dann kursiv dargestellt werden, ist in der Drucktechnik üblich, auch schon vor Zeiten des Internets. Also bedeutet eigentlich ''Textpassage'' nicht kursiv, sondern zitiert oder auch emphatisch. Das gilt sowohl bei Wikipedia als auch insbesondere bei vishia-Wikiformat.

Die Umsetzung ist aber bei Wikipedia anders als bei vishia-Wikiformat. Während man bei Wikipedia dem Darstellungsziel entsprechend ''Textpassage'' HTML-like unmittelbar in <i>Textpassage</i> umsetzen kann, wird die Umsetzung in vishia-WikiFormat nach <xhtml:em>Textpassage</xhtml:em> ausgeführt.

1.3 Formatierung von Zeichen innerhalb eines Absatzes

Topic=.WikiFormat.inlineFormating.

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:

  • ''Besonderer Text, Zitate oder Stichwörter'', gekennzeichnet mit zwei Apostrophen links und rechts. Die Standard-Erscheinungsform (style) des Textes ist kursiv. Die Bedeutung (Semantik) für solche Art Textpassagen lässt sich besser als herausgehoben bezeichnen. In Druckschriften ist ein kursiv gesetztes Wort ist meist ein Eigenname, eine kursiv gesetzte Textpassage oft ein Zitat. In XHTML ist für solche Zwecke die Textauszeichnung <xhtml:em> vorgesehen, die hiermit erzeugt wird. Für Zitate gibt es in XHTML zwar eine eigene Auszeichnung <xhtml:ci> mit einigen Attributen, die aber hier nicht benutzt wird.

    Bei Wikipedia führt diese Kennzeichnung zur direkten Formatierung als <i> (italic = kursiv). Das kann dort sein, weil Zitate und Heraushebungen eben dort immer kursiv gesetzt werden.

  • '''Stark hervorgehobener Text''', gekennzeichnet mit drei Apostrophen links und rechts. Der Unterschied zur Kennzeichnung mit zwei Apostroph ist: Dieser Text soll beim Lesen äußerlich auffallen. Es ist ein Suchwort, um in laufenden Text schnell einen gesuchten Inhalt zu erkennen. Umgesetzt wird dieser mit <xhtml:stroke>. Bei Wikipedia ist das <b> (bold)

  • '''''Stark herausgehobener besonderer Text''''': Mit insgesamt fünf Hochkommata links und rechts wird bei Wikipedia fett-kursiv erzeugt. Hier wird eine Kombination von <xhtml:stroke><xhtml:em> erzeugt. Es ist aber fragwürdig, ob man eine solche starke Auszeichnung braucht oder ob das nicht übertrieben ist. Die Tatsache, dass kursiv im Schriftfluss meist dünner erscheint, kann man damit wettmachen, dass ein geeigneter Style zugeordnet wird (kursiv und etwas fetter). Dazu bedarf es nicht nochmal extra drei Apostrophe. Die Benutzung der 5-Apostroph-Version wird also nicht empfohlen.

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. Es 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.

  • \'\'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.

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..

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..

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.table.

Auch Tabellen werden identisch sowohl bei Wikipedia-Eingaben als auch beim vishia-WikiFormat 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 nicht beginnend mit einem 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 Links in fortlaufenden Texten

Topic=.WikiFormat.link.

1.7 Bilder in fortlaufenden Texten

Topic=.WikiFormat.Image.

Kleinere Bilder sehen in Texten gut aus, wenn sie vom Text umflossen werden. Eine rechtsbündige Darstellung des Bildes, mit linksbündigen Text daneben und darunter, ist dabei auch die in Wikipedia empfohlene Darstellung.

Im vishia-Wikiformat werden Bilder innerhalb eines Fließtextes wie folgt formuliert:

 [[Image:Bildfile.png|right|727x482px|Bild-Unterschrift]]

Das Schlüsselwort Image entspricht dem der englischen Wikipedia. In der deutschen Wikipedia schreibt man auch programmtechnisch selbstverständlich an dieser Stelle das deutsche Wort Bild. Das widerspricht aber einem allgemein üblichen Prinzip, programmtechnische Dinge in englisch zu formulieren. Also bei vishia-WikiFormat sind programmtechnische Schlüsselworte englisch.

Die Bildangabe wird in ein <xhtml:img src="Bildfile.png" align="right" width="727" height="482" title="Bild-Unterschrift" /> umgesetzt. Wie das Bild letztlich verarbeitet wird und erscheint, hängt von der weiteren Verarbeitung ab. Die Semantik sollte aber recht klar sein.

Nach dem Doppelpunkt steht der Pfad zur Bild-Datei entweder als relativer Pfad oder wie bei einem Link als URL.

Zwischen mehreren | können bestimmte Attribute stehen. Als letztes Attribut steht der Bild-Titel oder die Bild-Unterschrift. Bei einer Dokumentengenerierung kann die Bild-Unterschrift in einem Bilderverzeichnis wiedergefunden werden. Umgesetzt wird dieser Text im Attribut <xhtml:img title="Bild-Unterschrift" />.

Bei den mittleren Angaben zwischen |...| wird folgendes erkannt:

  • |right|, |left| oder |center| wird in einem Attribut <xhtml:img algin="..." /> dargestellt und soll bestimmen, wie das Bild letzlich angeordnet wird.

  • |111x222px| wird in eine <xhtml:img widht="..." height="..."/> -Angabe umgesetzt. Dabei kann wie bei Wikipedia eine der Angaben auch entfallen.

  • |x222px| bestimmt nur die Höhe des Bildes.

  • |111px| bestimmt nur die Breite des Bildes. Wie die fehlende Angabe verarbeitet wird, ist an dieser Stelle nicht definiert sondern hängt von der weiteren Umsetzung ab. Zu erwarten ist, dass die originalen Bildproportionen erhalten bleiben.

Weitere Angaben werden bei vishia-Wikiformat nicht unterstützt. (...Nur das, was gebraucht wird, weniger soll mehr sein, ist aber erweiterungsfähig.)

1.8 Style-Angaben zu bestimmten Elementen

Topic=.WikiFormat.style.

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.9 Weiterführende Links

Topic=.WikiFormat.links.