Diese Seite stellt keinen aktuellen Stand dar. Montimum wurde 2010 durch Aneamal ersetzt.

Montimum 1: Was ist das?

Montimum ist eine Auszeichnungssprache, die ich für Perlebär-Artikel einsetze. Wenn man Texte präsentieren möchte und diese Texte sinnvoll strukturieren, Stellen hervorheben, Verknüpfungen anbieten, muss man diese Formatierungen im Dokument unterbringen. Genau das macht eine Auszeichnungssprache.

Warum eine eigene Auszeichnungssprache?

Erstellen und Darstellen trennen

Die Internetseite, wie Du sie gerade siehst, wird mit XHTML 1 ausgezeichnet an Deinen Browser versendet1. Warum speichere ich Artikel also nicht im XHTML-1-Format? Das hat mehrere Gründe. Einer ist, dass XHTML 1 einige Schwächen aufweist, welche die Nachfolger XHTML 2 beziehungsweise X/HTML 5 beheben werden. Wenn sich diese Standards durchsetzen, möchte ich einen von beiden verwenden aber nicht alle alten Artikel umschreiben müssen. Es ist praktischer, die Artikel bereits heute mit einer passenden Auszeichnung zu versehen und diese dann nur in den jeweils aktuellen Standard übersetzen zu lassen. Ein weiterer Vorteil: Schon jetzt könnte ich denselben Artikel flexibel in verschiedene Formate übersetzen: HTML, XHTML, PDF … Es ist also vernünftig, die Textauszeichnung beim Schreiben von jener bei der Darstellung zu trennen.

Individuell zuschneiden

Erstellen und Präsentieren trennen – okay. Wieso muss es aber eine eigene Auszeichnungssprache sein, wenn es Sprachen wie ODF, DocBook, BBCode und unzählige andere schon gibt? Eine eigene Sprache hat den Vorteil, dass man sie auf die eigenen Bedürfnisse perfekt zuschneiden kann. Man muss sich nicht irgendwelcher Hilfskonstruktionen bedienen, wenn eine Sprache nicht genau das bietet, was man braucht. Man baut sich die beste Lösung selbst. Man kann kreativ sein, man lernt viel mehr dabei. Man muss natürlich auch kreativ sein und viel lernen. Anfangs bedeutet das mehr Arbeit; das will ich nicht verheimlichen.

Im Gegensatz zu früheren Projekten entschied ich mich mit Montimum dazu, mich an keine verbreitete Metasprache zu halten. XHTML, DocBook und RSS zum Beispiel sind allesamt XML-Anwendungen. Doch bereits diese Metasprache schränkt das individuelle Zuschneiden wesentlich ein. Im folgenden Abschnitt wird dies ersichtlich, wenn ich Montimum-Ziele mit XML vergleiche. Konvertierbar ist Montimum zu anderen Sprachen nichtsdestotrotz, sonst würdest Du diese Seite nicht in XHTML-Form sehen.

Montimum-Ziele

Zugänglichkeit und gute Lesbarkeit

Montimum soll wie auch XML ohne spezielle Software zugänglich sein. Jeder einfache Texteditor soll zur Bearbeitung von Dokumenten benutzt werden können. Eine kleine aber zeitgemäße Einschränkung ist, dass Montimum auch nicht-ASCII-Zeichen verwendet. Wie bei XML ist der Standardzeichensatz UTF-8.

Der Quelltext der Dokumente soll leicht lesbar sein. Dazu gehört, dass der Aufbau der Funktion entspricht. So habe ich mich bei Montimum entschlossen, Fußnotentexte auch im Quelltext im Dokumentfuß unterzubringen, anstatt mitten im Text an jener Stelle, wo die Fußnote referenziert wird, wie bei vielen Textformaten üblich. Zur Lesbarkeit gehört aber auch, dass die Auszeichnung unaufdringlich, intuitiv verständlich und nicht überflüssig ist. So viel Auszeichnung wie nötig, so wenig wie möglich.

Wenig Redundanz

Für XML sind sowohl die Punkte Unaufdringlichkeit als auch Verzicht auf Redundanz, also Verzicht auf unnötige Wiederholungen, nicht charakteristisch. Ein XML-Ausschnitt als Beispiel:

<unordered-list>
 <item>Butter</item>
 <item>Broccoli</item>
</unordered-list>

Redundanz zeigt sich hier in zweierlei Form. Zum einen nennt XML den Namen eines Elementes immer zweimal: am Anfang und am Ende. Das ist bei einer strengen Schachtelung von Elementen, wie XML und auch Montimum sie fordern, für eine eindeutige Zuordnung unnötig. Zum anderen kommt bei XML-Anwendungen oft vor, dass ein Element genau einen Typ oder eine feste Folge von Kindelementen hat: Im Beispiel enthält die Liste nur Listenpunkte als untergeordnete Elemente. In solchen Fällen ist es nicht notwendig, Kindelemente zu benennen.

Zum Vergleich: In Montimum schaut dieselbe Liste so aus:

`[unordered-list] :. Butter :. Broccoli ´

Geringe syntaktische Mindestanforderungen

Jeder unformatierte Text ist ein Montimum-Dokument. Jedes Dokument hat automatisch ein anonymes Wurzel-Element. In XML hingegen ist die ausdrückliche Benennung eines Wurzelelementes Pflicht. Die geringen Mindestanforderungen sollen Auszeichnungen flexibel, einfach und in Kombination mit anderen Auszeichnungen einsetzbar machen.

Bedeutung und Gestaltung trennen

Bedeutung und Gestaltung des Textes sollen voneinander getrennt sein. Damit ist zum einen gemeint, dass wie bei vielen XML-Sprachen eine semantische Auszeichnung – auch logische Auszeichnung genannt – verwendet werden soll. Das Design hängt vom Ausgabeformat ab und kann für dieses zum Beispiel in externen Stylesheets definiert werden.

In seltenen Fällen gibt es Anweisungen zur Gestaltung, die der Autor seinem Dokument direkt beifügen können sollte. Dazu gehört zum Beispiel die Ausrichtung von Text in Tabellen. Diese Gestaltungshinweise werden einem Element als Eigenschaften gekennzeichnet übergeben. Ein Element kann mehrere benannte Eigenschaften und – im Gegensatz zu XML ebenfalls mehrere – unbenannte Inhalts-Abschnitte besitzen, wie oben am Beispiel Listen demonstriert.

Eine ähnliche Unterscheidung kennt XML: Metadaten werden eher in Attributen (Eigenschaften) festgehalten, Daten als Inhalt von Elementen. Diese Trennung ist allerdings wenig konsequent: Wo die Grenze zwischen Daten und Metadaten verläuft, ist oft unklar oder hängt vom Betrachter ab. Vorgeschrieben ist sie nicht. Einmal für eine XML-Anwendung festgelegt müssen sich aber alle Nutzer daran halten, was für viele wenig intuitiv ist. Beispiel XHTML: Für Sehbehinderte und textbasierte Browser macht es kaum Sinn, dass der Alternativtext von Bildern ein Attribut ist. Er ist der eigentliche angezeigte oder vorgelesene Inhalt. Ebenso inkonsequent: Bei mehrzeiligen Eingabefeldern ist die Textvorbelegung als Inhalt, bei einzeiligen Eingabefeldern als Attribut definiert.

Erweiterbarkeit

Der Montimum-Wortschatz ist nicht abgeschlossen, sondern soll leicht um neue Auszeichnungen erweitert werden können. Implementierungen sollen Auszeichnungselemente daher modular verwalten. Neue Module sollen ohne weitere Änderungen durch Hinzufügen einer Datei ergänzt werden können.

Die Verwendung unterschiedlicher Namensräume für Elemente soll möglich sein.

Leichtigkeit und Anpassbarkeit

Montimum ist keine klassische leichtgewichtige Auszeichnungssprache. Diese verwenden anstatt benannten Elementen oft einfache Zeichen, um eine Hervorhebung zu erreichen: //kursiv// und **betont**. Der Vorteil ist Unaufdringlichkeit – es nimmt nur wenig Platz ein und stört den Lesefluss nicht durch Worte, die nicht zum Text gehören. Intuitiv ist die Hervorhebung zumeist auch, bereits im Quelltext sieht **betont** betont aus. Allerdings sind die intuitiven Ausdrucksmöglichkeiten beschränkt; kompliziertere Strukturen lassen sich so schwer darstellen.

Montimum verwendet benannte Auszeichnungen, um nahezu beliebig komplexe Sachverhalte darstellen zu können. Aber – und das mache ich bestimmt in 95 % der Fälle – es ermöglicht auch die dokumentspezifische Vereinbarung leichtgewichtiger Auszeichnungen! Wenn man es zu Beginn eines Dokumentes so festlegt, kann man eine Referenz etwa `→ Anlage´ oder `siehe Anlage´ anstatt nach Standard `[reference] Anlage´ schreiben. Um bei der praktischen Kurzschreibweise die Übersicht nicht zu verlieren, ist die Wiederholung von Kürzeln am Ende möglich. Kann man `**so betonen´, kann man also auch `**so betonen**´. Selbst Redundanz darf einmal sein, wenn sie der Übersichtlichkeit dient.

Um durch die individuelle Anpassbarkeit keine Austauschschwierigkeiten entstehen zu lassen, muss jede Montimum-Implementierung einen persönlich formatierten Text in der Standard-Syntax darstellen können. So wird vermieden, dass etwas, das für einen intuitiv ist, für den nächsten zur Belastung wird.

Was bedeutet Montimum?

Montimum setzt sich zusammen aus Monti, mu und M.

  • Monti ist eine Anspielung und Ehrung Charles Montgomery Burns’, dessen bevorzugter deutscher Ausspruch bei Gelingen eines Planes „ausgezeichnet“ ist, begleitet von einer charakteristischen Fingerstellung. Passt das nicht ausgezeichnet zu einer Auszeichnungssprache?
  • Mu steht für markup, das englische Wort für Textauszeichnungen, wie es sich auch in HTML, also hypertext markup language, findet.
  • M am Ende steht wieder für Montimum.

Man könnte Montimum demnach frei so übersetzen: Ausgezeichnete Auszeichnung Montimum. Redundant bis zum Gehtnichtmehr. So redundant, dass für die Syntax ganz meinem Wunsch entsprechend kaum noch Redundanz übrig bleibt. ;-)

Wie es weitergeht

In Teil 2 werde ich die Syntax genauer unter die Lupe nehmen. In weiteren Artikeln werden der Wortschatz von Montimum, die Umsetzung für diese Netzpräsenz sowie der Mathe-Modus unter die Lupe genommen.

1 Stand: 6. Septmber 2009