- Vereinfachte Auszeichnungssprache
-
Eine Vereinfachte Auszeichnungssprache ist eine Auszeichnungssprache mit einer einfachen Syntax, um Dokumente einfach manuell erstellen und lesen zu können. Meist werden Dokumente für die endgültige Darstellung in eine gewöhnliche Auszeichnungssprache wie HTML oder XHTML serverseitig umgewandelt.
Klassische Auszeichnungssprachen, die möglichst viele und genaue Details darstellen können, werden meist maschinell erzeugt und müssen nicht unbedingt einfach von Menschen geschrieben oder gelesen werden können. Die wenigsten Webseiten werden heutzutage noch manuell in HTML geschrieben, sondern werden dynamisch durch Skriptsprachen erzeugt.
Inhaltsverzeichnis
Funktion
Werden Inhalte von Menschen manuell geschrieben oder sogar gelesen, so können diese entweder mit WYSIWYG grafisch oder direkt durch einfache Auszeichnungssprachen dargestellt werden. Durch die direkte Bearbeitung muss der Text zum Schreiben und Lesen nicht aufbereitet werden.
Vereinfachte Auszeichnungssprachen nutzen im Unterschied zu klassischen
- keine ausführlichen Tags wie z. B. HTML
<a href="Seite">Seite</a>
, sondern wenige nicht benutzte Zeichenfolgen ([[Seite]]
), um die Lesbarkeit zu erhöhen - wenn möglich keinen zwingenden Abschluss wie bei SGML-Elementen
- aber Zeilenumbruch oder Leerzeichen
So ist ein Sternchen (
*
) am Anfang einer Zeile ein Listenpunkt und wird erst beim Kompilieren als typografisches Aufzählungszeichen dargestellt. Diese Schreibweise ist gegenüber nativem HTML (<ul><li>text</li></ul>
) wesentlich einfacher und kürzer. Allerdings ist diese Methode auch nicht ganz eindeutig, denn eine andere Funktion des Sternchens zur Kennzeichnung einer Fußnote kollidiert hier. Andere Funktionen innerhalb einer vereinfachten Auszeichnungssprache verursachen so Fehler. In manchen vereinfachten Auszeichnungssprachen beginnt ein fetter Text (ich rufe *laut* um Hilfe
) mit dem Sternchen, was am Zeilenanfang (*laut* rufe ich um Hilfe
) mit der Darstellung für einen Listeneintrag kollidieren wird.Neben reinen logischen Auszeichnung wie Überschriften und reinen Schriftauszeichnung wie fett können auch weitere Funktionen erfüllt werden
- Hyperlinks
- Tags zur zusätzlichen Auszeichnung eines Datenbestandes mit zusätzlichen Informationen und zur Kategorisierung.
- mit Transklusionen Teile anderer Dokumente durch einen Verweis einzuschließen.
Die meisten Auszeichnungssprachen haben sich in der Anwendung unterschiedlicher Software gebildet, es gibt kaum standardisierte oder einheitliche Lösungen, obwohl die Funktionen oft ähnlich sind.
- um in Wikis an Hypertexten zusammenzuarbeiten, gibt es unterschiedlichen Wikitext, aber auch den Versuch einer Standardisierung mit Creole
- in Foren hat sich der BBCode etabliert
- Markdown, Textile, AsciiDoc und reStructuredText konzentrieren sich auf jeweils andere Vorgehensweisen.
Neben diesen Anwendungen werden vereinfachte Auszeichnungssprachen auch in Plain text-Dokumenten (z. B. Readme) oder E-Mails zur logischen und optischen Strukturierung genutzt, ohne dass diese weiterverarbeitet werden.
Geschichte
Vereinfachte Auszeichnungssprachen wurden schon immer in rein textbasierten Systemen zur Darstellung von Hervorherbungen wie Kursiv oder Fett verwendet.
Liste vereinfachter Auszeichnungssprachen
Presentation oriented
- Almost Plain Text
- AsciiDoc
- BBCode
- die Programmiersprache Curl
- Creole
- Crossmark
- Epytext
- Epydoc
- EtText
- Haml
- JsonML
- MakeDoc
- markaby
- Markdown
- Org-mode
- POD
- reStructuredText
- Ruby Document format
- Setext
- SiSU
- SPIP
- Texy!
- Textile
- txt2tags
- UDO
- Wikitext
Data serialization oriented
Vergleich [1]
Sprache Implementation für Sprache oder Plattform HTML export tool HTML import tool Tabellen Link Titel class attribute id attribute exportierbar Lizenz BBCode PHP, C# Nein Nein Nein Nein Nein Nein HTML, XHTML Public Domain declarative Curl ? ? ? Ja Ja ? ? Als Makro implementiert Properitär Curl Inc. und Sumisho Creole PHP, Python, Ruby, JavaScript [2] ? ? Ja Nein Nein Nein abhängig von der jeweiligen Anwendung CC-by-SA 1.0 Markdown PHP, Python, Perl, C#, JavaScript[3], Java, Haskell[4], C[5][6], Ruby[7] Ja Ja Nein Ja Nein Nein XHTML und andere BSD-style & GPL (both) Markdown Extra PHP, Ruby Ja Ja Ja[8] Ja Nein Nein XHTML BSD-style & GPL (both) MediaWiki PHP Ja Ja Ja Ja Ja Ja XHTML GNU GPL Org-mode Emacs Lisp, Ruby (parser only) Ja ? Ja Ja ? ? Plain text, HTML, LaTeX, PDF, DocBook, TaskJuggler, Freemind, XOXO, iCalendar GPL PmWiki PHP Nein Ja Ja Ja Ja Ja XHTML 1.0 Transitional GNU GPL POD Perl Ja ? Nein Ja ? ? HTML, XHTML, XML, Man Page, LaTeX, plain text, RTF, DocBook Artistic License reStructuredText Python, Haskell, Java, Ja Nein Ja Ja Ja auto LaTeX, XML, Man Page, HTML (w3c valid), PDF, S5, ODF Python License Textile PHP, Java, Perl, Python, Ruby, ASP, C# Ja Nein Ja Ja Ja Ja XHTML Textile License Texy! PHP, C#; Java in progress Ja Ja Ja Ja Ja Ja XHTML oder HTML GNU GPL v2 License txt2tags Python Ja ? Ja[9] Ja ? ? HTML, XHTML, SGML, LaTeX, Lout, Man Page, Wikipedia, Google Code Wiki, DokuWiki, MoinMoin, MagicPoint, PageMaker GPL Syntax-Vergleich
Schrift
Comparing text formatting syntax Sprache Fett Kursiv Nichtproportionale Schriftart Bemerkung AsciiDoc *bold text*
_italic text_
+monospace text+
Doppelte Operatoren ignorieren weitere Anweisungen ( **bold _text**
ergibt bold _text).BBCode [b]bold text[/b]
[i]italic text[/i]
[code]monospace text[/code]
Die Formatierung bleibt über Zeilenumbrüche erhalten declarative Curl {bold text}
{italic text}
{monospace text}
Curl Visual object werden akzeptiert Creole **bold text**
//italic text//
{{{monospace text}}}
Dreifach Geschweifte Klammern steht eigentlich für nowiki-Bereiche, kann aber als monospace definiert werden. Markdown **bold text**
oder
__bold text__
*italic text*
oder
_italic text_
Non-monospace text
monospace text
more monospace text
Inline `monospaced` text.
Fett und Kursiv werden nicht genutzt, aber em
(ist meist kursiv) undstrong
(meist fett) tags.
Monospace wird mit 4 führenden Leerzeichen oder einem Tab erzeugt oder der Text wird mit backticks begonnen (
`monospaces`
).MediaWiki '''bold text'''
''italic text''
<code>monospace text</code>
Org-mode *bold text*
/italic text/
=code= oder ~verbatim~
_underlined_ +strike-through+
PmWiki '''bold text'''
''italic text''
@@monospace text@@
POD B<bold text>
I<italic text>
C<monospace text>
Indented text is also shown as monospaced code. reStructuredText **bold text**
*italic text*
``monospace text``
Textile *bold text*
oder
**bold text**
_italic text_
oder
__italic text__
@monospace text@
Fett und Kursiv werden nicht genutzt, aber em
(ist meist kursiv) undstrong
(meist fett) tags.
Für einzelne Zeichen (and
code
tag), undi
undb
tags on double symbols.Texy! **bold text**
*italic text*
oder
//italic text//
`monospace text`
Es werden standardmäßig die Tags em
(kursiv) undstrong
(fett) genutzt.txt2tags **bold text**
//italic text//
``monospace text``
Überschrift
Comparing section header formatting Sprache Format Bemerkung AsciiDoc = Level 1 Header
== Level 2 Header ==
=== Level 3 Header
oder
Level 1 Header ============== Level 2 Header -------------- Level 3 Header ~~~~~~~~~~~~~~
Tags müssen nicht geschlossen werden. Level 1 ist der Seitentitel BBCode Hat keine Unter-Überschriften declarative Curl {heading level=1 Header}
{heading level=2 Header}
{heading level=3 Header}
Usual options available for a Curl Visual obbject. Creole = Level 1 Header
== Level 2 Header ==
=== Level 3 Header
Tags müssen nicht geschlossen werden Markdown # Level 1 Header
## Level 2 Header
oderLevel 1 Header ============== Level 2 Header --------------
Optional kann die #-Schreibweise mit der gleichen Anzahl von # geschlossen werden, diese Schreibweise unterstützt sechs Hierarchieebenen, die =-Schreibweise nur 2. MediaWiki == Level 2 Header ==
=== Level 3 Header ===
Mit einem = kann eine Überschrift ersten Grades erzeugt werden, aber meistens wird im Text mit der h2 begonnen, da h1 für den Seitentitel reserviert ist. Es sind bis zu sechs Hierarchieebenen möglich. Org-mode Default: * Level 1 Header ** Level 2 Header *** Level 3 Header
Cleaner view using org-indent-view
* Level 1 Header * Level 2 Header * Level 3 Header
PmWiki !! Level 2 Header
!!! Level 3 Header
Mit einem ! kann eine Überschrift ersten Grades erzeugt werden, aber meistens wird im Text mit der h2 begonnen, da h1 für den Seitentitel reserviert ist. Es sind bis zu sechs Hierarchieebenen möglich. POD =head1 Level 1 heading
=head2 Level 2 heading
reStructuredText Chapter 1 Title =============== Section 1.1 Title ----------------- Subsection 1.1.1 Title ~~~~~~~~~~~~~~~~~~~~~~ Section 1.2 Title ----------------- Chapter 2 Title ===============
Folgende Zeichen können als Tag unten drunter genutzt werden = - ` : ' " ~ ^ _ * + # < >
.Textile h1. Level 1 Header
h2. Level 2 Header
Up to 6 levels Texy! ### Level 1 Header
## Level 2 Header
oderLevel 1 Header ============== Level 2 Header --------------
Optional kann die #-Schreibweise mit der gleichen Anzahl von # geschlossen werden, diese Schreibweise unterstützt sechs Hierarchieebenen. Die "unterstreichede" Schreibweise unterstützt vier Hierarchieebenen (### *** === ----). Die erzeugten Hierarchieebenen werden dynamisch erzeugt. Je weniger Zeichen, desto höher die Ebene.
txt2tags = Level 1 Header =
== Level 2 Header ==
=== Level 3 Header ===
Diese Schreibweise unterstützt sechs Hierarchieebenen. Mit dem Zeichen +
anstatt eines=
werden nummerierte Überschriften erzeugt.Link syntax
Comparing link syntax Language Syntax Notes AsciiDoc http://www.example.com
http://www.example.com[Link text]
BBCode [url]http://www.example.com[/url]
[url=http://www.example.com]Link text[/url]
Je nach Implementation werden URL automaisch als Hyperlink geparst. declarative Curl {link href={url "http://www.example.com"}, Link text}
{link href={url "http://www.example.com"}, Link text}
Eine weitere Option ist target="" ( {url }
ansich ist ein Curl-Makro)Creole [[interner link]]
[[interner link|Display Text]]
[[http://www.example.com|Link text]]
[[WikiCreole:Creole1.0|InterWiki Link]]
URLs werden automatisch als Hyperlink geparst. Markdown [Link text](http://www.example.com "optional title attribute")
oder
[Link text][id]
und andernorts
[id]: http://www.example.com "optional title attribute"
Das title
-Attribute ist optional.MediaWiki [[interner link]]
[[interner link|Displayed text]]
[http://www.example.com]
[http://www.example.com External link]
URLs werden automatisch als Hyperlink geparst. Org-mode link format: [[link][description]] oder [[link]]
[[My Target][Find my target]]
- text search in current file
[[#my-custom-id]]
- link to custom id
[[http://orgmode.org]]
- external link
[[http://orgmode.org][Org Mode]] - external link with description
[[file:/path/to/some/file]] oder [[/path/to/some/file]] oder [[./some/file]]
- file system linksPmWiki [[interner link]]
[[interner link|Displayed text]]
[[http://www.pmwiki.org]]
[[http://www.Pmwiki.org|External link]]
URLs ohne Leerzeichen werden automatisch als Hyperlink geparst. POD L</Internal Link>
L<Perl::Module::Link>
L<http://example.com/external_link>
URLs mit titles werden nicht unterstützt. reStructuredText `Link text <http://www.example.com/>`_
Kann aber auch mit einem nicht eingebettten Format geschrieben werden. Textile "Link text (optional title attribute)":http://www.example.com
oder
"Link text":alias
und andernorts
[alias (optional title attribute)]http://www.example.com
Erlaubt optional title
attribute.Texy! "Link text .(optional title)[opt. class oder ID]{opt. style}":http://www.example.com
oder
"Link text":alias
und andernorts
[alias]: http://www.example.com .(optional title)[opt. class oder ID]{opt. style}
Optional sind title
-Attribute, CSS classen, ID, inline style und HTML element attributes erlaubt. Beispiel"Link .(title)[class#id]{color: blue;rel:nofollow}"
txt2tags [Link text www.example.com]
URLs ohne Leerzeichen werden automatisch als Hyperlink geparst. Auch sind Anchorlinks erlaubt. Einzelnachweise
- ↑ http://bluebones.net/2005/02/humane-text-formats/
- ↑ WikiCreole: Converters
- ↑ http://attacklab.net/showdown/
- ↑ Pandoc can read markdown.[1]
- ↑ peg-markdown
- ↑ Discount
- ↑ https://rubyforge.org/projects/kramdown/
- ↑ PHP Markdown Extra
- ↑ Txt2tags User Guide
Weblinks
- keine ausführlichen Tags wie z. B. HTML
Wikimedia Foundation.