Zum Inhalt springen

„Wikipedia:Technik/Text/Edit/CodeMirror“ – Versionsunterschied

aus AufEinWort, der freien Forschung
AZ: Die Seite wurde neu angelegt: {{SeitenordnungTest | PageID = {{subst:PAGEID}} | Obereinordnung = Verwaltung | Untereinordnung = Benutzer | Einordnung = | Ordnung = }}
 
K Textersetzung - „SeitenordnungTest“ durch „SeitenordnungWP.de“
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{SeitenordnungTest
{{SeitenordnungWP.de
| PageID = 0
| PageID = 93648
| Obereinordnung = Verwaltung
| Obereinordnung = Ausgabe
| Untereinordnung = Benutzer
| Untereinordnung = Bearbeitung
| Einordnung =  
| Einordnung = Texteditor
| Ordnung =  
| Ordnung = Syntax
| Hinweis = [[Syntaxhervorhebung]] von [[Wikitext]] im Editor
}}
}}
{{../../../!header
|Text=CodeMirror – Syntaxhervorhebung für Wiki-Seiten}}
'''[[mediawikiwiki:Extension:CodeMirror|CodeMirror]]''' ist eine Möglichkeit, bei der klassischen Bearbeitung von [[Wikitext]] eine [[Syntaxhervorhebung]] einzuschalten; ebenso für [[Hilfe:Lua|Lua]], [[Cascading Style Sheets|CSS]], [[JavaScript]] sowie [[Hilfe:JSON|JSON]].
Das ist einsetzbar sowohl bei:
* Einfacher, reiner Quelltextbearbeitung,
* kombiniert mit [[../VisualEditor|VisualEditor]]-Quelltextbearbeitung.
Seit August 2017 wurde dies als [[../../../Skin/Beta|Beta-Funktion]] angeboten, seit Mitte Juni 2018 wird es für alle Bearbeiter bereitgestellt. Im April 2026 wurde eine neue Version aktiviert ({{Phab|Task=T419332}}).
{{Achtung
|Text=Solltest du bereits ein anderes Skript aktiviert haben, das die Syntax hervorhebt, wie beispielsweise [[Benutzer:Schnark/js/syntaxhighlight]], dieses bitte deaktivieren, da es zu unschönen Darstellungsfehlern innerhalb des Bearbeitungsfensters bis hin zur Verdoppelung oder Unsichtbarkeit des Fensterinhalts führen kann.}}
== Funktionalität ==
Der Text im Bearbeitungsfeld wird bei der Bearbeitung mit entsprechendem [[#Markup|Markup]] dargestellt.
* In die gängigen Werkzeugleisten für die Quelltextbearbeitung (einschließlich VisualEditor) wird ein Button eingefügt, der es erlaubt, den Modus ab- und wieder einzuschalten.
* Es handelt sich um ein diagonal nach links unten zeigendes Markierstiftsymbol; CodeMirror abgeschaltet = schwarz {{nowrap|{{CodexIcon|highlight|px=16|text={{int:Codemirror-toggle-label}}}}}} '''Syntax''' und CodeMirror aktiv = blau {{nowrap|{{CodexIcon|highlight|pr|px=16|text={{int:Codemirror-toggle-label}}}} {{Hilfe/mark|'''Syntax'''|hellblau}} {{CodexIcon|settings|pr|px=14|text={{int:codemirror-keymap-preferences}} [Ctrl+Shift+,]}}}}; auch: <span style="white-space:nowrap">[[Datei:Button CodeMirror inactive.svg|22px|alt=|verweis=|{{int:Codemirror-toggle-label}}]] / [[Datei:Button CodeMirror active.svg|22px|alt=|verweis=|{{int:Codemirror-toggle-label}}]]</span>
* Der letzte Status wirkt sich auch auf alle parallel geöffneten Fenster aus, sobald die Seite neu aufgebaut wird.
Tastendrücke, Einfügen, Löschen wird wie gewohnt an der Cursorposition wirksam; [[Kopieren und Einfügen]] ist möglich.
Im April 2026 wurde eine spezielle Fehleranalyse für den Quelltext aktiviert, siehe dazu die Unterseite [[/Lint/]].
=== Nachteile ===
Je nach Größe der Seite, Leistungsfähigkeit des Rechners und möglicherweise Art des Browsers können die Reaktionen sehr träge ausfallen; womöglich ganz ausbleiben.
Es gibt folgende Einschränkungen gegenüber der regulären Quelltext-Bearbeitung:
* Kein „Rückgängig“ (Undo) per Kontextmenü ({{Taste|Strg}}+{{Taste|Z}} funktioniert)
* keine Rechtschreibprüfung<ref>{{phab|Task=95104}}</ref>
* kein Wechsel zwischen den Elementen des Gesamtformulars mittels {{Taste|Tab}}
=== Klammerpaare hervorheben ===
[[Datei:Hervorhebung zusammengehörender Klammern.gif|mini|Animiertes Beispiel]]
Bei aktivierter Syntaxhervorhebung können seit Ende Januar 2021 bei der Bearbeitung des Wikitextes zusammengehörende Klammerpaare gefunden werden. Dafür wird der Cursor direkt hinter einer Klammer positioniert. Dies kann hinter der öffnenden oder schließenden Klammer geschehen. Angezeigt werden die zugehörigen Klammerelemente durch eine hellgraue  Hinterlegung. Dies erleichtert die Suche nach fehlenden Klammern, beispielsweise bei der Erstellung von Vorlagensyntax, es kann auch ein zugehöriges Tabellenende gefunden werden. Hier muss der Cursor lediglich in der selben Zeile stehen, in der sich die öffnende <code style="color: #EE00EE;">'''&#123;&#124;''' class="wikitable"</code> oder schließende <code style="color: #EE00EE;">|}</code> Syntax befindet.
Beispiele:
<div style="font-family:monospace;">
* <span style="box-shadow: inset 0 0 1px 1px #999999; background: #EEEEEE; font-weight: bold; padding: 1px;">[</span><span style="color: #3366CC; background: #D7D4F0;">'''http://'''example.org/ Text</span><span style="box-shadow: inset 0 0 1px 1px #999999; background: #EEEEEE; font-weight: bold; padding: 1px;">]</span>
* <span style="color: #8800CC;"><span style="font-weight: bold;">&#123;&#123;<u>Literatur</u>&#124;Titel=<span style="box-shadow: inset 0 0 1px 1px #999999; background: #EEEEEE; font-weight: bold; padding: 1px;">&#123;</span>&#123;<u>lang</u>&#124;</span>fr<span style="font-weight: bold;">&#124;</span>J’accuse…!<span style="font-weight: bold;">&#125;<span style="box-shadow: inset 0 0 1px 1px #999999; background: #EEEEEE; font-weight: bold; padding: 1px;">&#125;</span>&#125;&#125;</span></span>
* <span style="color: #FF5500;">&#123;&#123;<span style="box-shadow: inset 0 0 1px 1px #999999; background: #EEEEEE; font-weight: bold; padding: 1px;">&#123;</span><span style="font-weight: bold;">foo&#124;</span>bar<span style="box-shadow: inset 0 0 1px 1px #999999; background: #EEEEEE; font-weight: bold; padding: 1px;">&#125;</span>&#125;&#125; <span style="color: #000000;">–</span> &#123;<span style="box-shadow: inset 0 0 1px 1px #999999; background: #EEEEEE; font-weight: bold; padding: 1px;">&#123;</span>&#123;<span style="font-weight: bold;">foo&#124;</span>bar&#125;<span style="box-shadow: inset 0 0 1px 1px #999999; background: #EEEEEE; font-weight: bold; padding: 1px;">&#125;</span>&#125; <span style="color: #000000;">–</span> <span style="box-shadow: inset 0 0 1px 1px #999999; background: #EEEEEE; font-weight: bold; padding: 1px;">&#123;</span>&#123;&#123;<span style="font-weight: bold;">foo&#124;</span>bar&#125;&#125;<span style="box-shadow: inset 0 0 1px 1px #999999; background: #EEEEEE; font-weight: bold; padding: 1px;">&#125;</span></span>
* <span style="box-shadow: inset 0 0 1px 1px #999999; background: #EEEEEE; font-weight: bold; padding: 1px;">(</span>Text in einfachen Klammern<span style="box-shadow: inset 0 0 1px 1px #999999; background: #EEEEEE; font-weight: bold; padding: 1px;">)</span>
</div>
=== Zeilennummerierung ===
[[Datei:Zeilennummerierung im 2017 Wikitext Editor.png|mini|Wikitexteditor 2017 auf Basis des Visual Editors]]
[[Datei:Technical Wishes – Line numbering - 2010 wikitext editor.png|mini|Texteditor mit aktivierten CodeMirror]]
Insbesondere bei der Vorlagenerstellung kann es vorteilhaft sein, die Inhalte einzelner Zeilen besser erkennen zu können. Der CodeMirror bietet seit Mitte April 2021 daher bei der Bearbeitung einer Seite am linken Rand eine Zeilennummerierung an. Besteht eine Seite aus mehreren Abschnitten und es wird nur ein einzelner Abschnitt bearbeitet, so beginnt die Zählung immer mit 1, es erfolgt dann also keine fortlaufende Zählung der Gesamtzeilen.
Es sollte beachtet werden, dass die in einem Difflink angezeigte Zeilennummer erheblich von der Nummerierung im aktuellen Bearbeitungsfeld abweichen kann.
<div style="border: 1px #{{Hilfe/style|linec}} dashed; padding:5px; padding-top:0; margin:8px; margin-left:1.5em; overflow:auto;">
{{Hilfe/Simulation|noframe=1}}
{| style="width:100%;"
|- class="hintergrundfarbe5"
|colspan="4" style="padding:2px;"| Zeilennummer in der Vergleichsansicht
|- style="text-align:center;"
|colspan="2"| {{int:currentrev}} ||colspan="2"| {{int:yourtext}}
|-
|colspan="2"| '''Zeile 115:'''
|colspan="2"| '''Zeile 115:'''
|-
|
| <div style="border:1px solid #DDDDDD; border-left:.3em solid #DDDDDD; padding: .5em;">
Unveränderter Text
</div>
|
| <div style="border:1px solid #DDDDDD; border-left:.3em solid #DDDDDD; padding: .5em;">
Unveränderter Text
</div>
|-
|style="width:10px; font-size: 20px;"| -
| <div style="border:1px solid #FFEBAD; border-left:.3em solid #FFEBAD; padding: .5em;">
<nowiki>* [http://</nowiki>www.<span style="background: #FFEBAD;">'''igs-ff.de'''</span>/ Website der Integrierten Gesamtschule Franzsches Feld] <span style="background: #FFEBAD;">'''igs-ff.de'''</span>.de
</div>
|style="width:10px; font-size: 20px;"| +
| <div style="border:1px solid #ABCDEF; border-left:.3em solid #ABCDEF; padding: .5em;">
<nowiki>* [http://</nowiki>www.<span style="background: #ABCDEF;">'''igsff.de'''</span>/ Website der Integrierten Gesamtschule Franzsches Feld] <span style="background: #ABCDEF;">'''igsff.de'''</span>.de
</div>
|-
|
| <div style="border:1px solid #DDDDDD; border-left:.3em solid #DDDDDD; padding: .5em;">
Unveränderter Text
</div>
|
| <div style="border:1px solid #DDDDDD; border-left:.3em solid #DDDDDD; padding: .5em;">
Unveränderter Text
</div>
|- class="hintergrundfarbe5"
|colspan="4" style="padding:2px;"| Nummerierung im Bearbeitungsfenster
|-
|colspan="4"|
{| style="border-collapse:collapse;"
|-
|colspan="2"| {{Hilfe/toolbar |CodeMirror=1 |CodeMirrorSett=1}}
|- style="font-family:monospace;"
|style="width: 21px; background:#F8F9FA; color:#999999;"|{{0|00}}1 || <span style="font-size: 1.5em; line-height: 1.2em;"><span style="color: #0076DD; font-weight: normal;">==</span> Weblinks <span style="color: #0076DD; font-weight: normal;">==</span></span>
|- style="font-family:monospace;"
|style="width: 21px; background:#F8F9FA; color:#999999;"|{{0|00}}2 || Unveränderter Text
|- style="font-family:monospace;"
|style="width: 21px; background:#F8F9FA; color:#999999;"|{{0|00}}3 || <span style="color: #0076DD;">*</span> <span style="color: #000AAA;">&#91;http&#58;//www.igsff.de/</span> Website der Integrierten Gesamtschule Franzsches Feld<span style="color: #000AAA;">&#93;</span> igsff.de.de
|- style="font-family:monospace;"
|style="width: 21px; background:#F8F9FA; color:#999999;"|{{0|00}}4 || Unveränderter Text
|- style="font-family:monospace;"
|style="width: 21px; background:#F8F9FA; color:#999999;"|{{0|00}}5 ||
|}
|}
</div>
Die Nummerierung ist an das Werkzeug gekoppelt und steht nicht für andere Editoren zur Verfügung.
== Markup ==
Die nachstehend aufgelisteten Farben, Hervorhebungen und sonstigen Dekorationen werden zur Unterscheidung verwendet.
* Sie sind einzeln [[#configCSS|konfigurierbar]].
{| class="wikitable hintergrundfarbe-basis"
|- style="font-size:larger;"
! style="max-width:33%; width:33%;"| Element
! CodeMirror
|-
! colspan="2" style="text-align:left;"| Elementar
|- id="cm-mw-skipformatting"
| Festes Format (Leerzeichen am Zeilenbeginn)
|style="font-family:monospace;"| <span style="background:#AADDFF;">&nbsp;</span>foo bar
|- id="cm-mw-list"
| Aufzählung (Sternchen <code>*</code>&nbsp;oder&nbsp;<code>#</code> am Zeilenbeginn)
|style="font-family:monospace;"| <span style="color: #0076DD; font-weight: bold;">*</span> foo bar<br /> <span style="color: #0076DD; font-weight: bold;">#</span> foo bar
|- id="cm-mw-signature"
| Signatur
|rowspan="2" style="font-family:monospace;"| <span style="color: #0076DD; font-weight: bold; background: #EEEEEE;"><nowiki>∼∼∼∼</nowiki></span><br /> <span style="color: #0076DD; font-weight: bold; background: #EEEEEE;">----</span>
|- id="cm-mw-hr"
| Trennlinie
|- id="cm-mw-indenting"
| Einrückung (Doppelpunkte)
|style="font-family:monospace;"| <span style="color: #0076DD; font-weight: bold; background: #DDDDDD;">:::</span> foo bar
|- id="cm-mw-mnemonic"
| HTML-Entity
|style="font-family:monospace; color:#14866D;"| &amp;amp;
|- id="cm-mw-comment"
| HTML-Kommentar
|style="font-family:monospace; color: #72777D; font-weight: normal;"| &lt;-- Kommentar --&gt;
|- id="cm-mw-apostrophes-bold"
| Fettschrift
|rowspan="2" style="font-family:monospace;"| <span style="color:#0076FF"><nowiki>'''</nowiki></span>'''Fett'''<span style="color:#0076FF"><nowiki>'''</nowiki></span><br /> <span style="color:#0076FF"><nowiki>''</nowiki></span>''Kursiv''<span style="color:#0076FF"><nowiki>''</nowiki></span>
|- id="cm-mw-apostrophes-italic"
| Kursivschrift
|-
! colspan="2" style="text-align:left;"| Überschriften
|- id="pre.cm-mw-section-1"
| Überschrift 1
|style="font-family:monospace;"| <span style="font-size: 1.8em; line-height: 1.2em;"><span style="color: #0076DD; font-weight: normal;">=</span> Überschrift 1<span style="color: #0076DD; font-weight: normal;">=</span></span>
|- id="pre.cm-mw-section-2"
| Überschrift 2
|style="font-family:monospace;"| <span style="font-size: 1.5em; line-height: 1.2em;"><span style="color: #0076DD; font-weight: normal;">==</span> Überschrift 2 <span style="color: #0076DD; font-weight: normal;">==</span></span>
|- id="pre.cm-mw-section-3"
| Überschrift 3
|style="font-family:monospace;"| <span style="font-weight:bold;"><span style="color: #0076DD; font-weight: normal;">===</span> Überschrift 3 <span style="color: #0076DD; font-weight: normal;">===</span></span>
|- id="pre.cm-mw-section-4"
| Überschrift 4
|style="font-family:monospace;"| <span style="font-weight:bold;"><span style="color: #0076DD; font-weight: normal;">====</span> Überschrift 4 <span style="color: #0076DD; font-weight: normal;">====</span></span>
|- id="pre.cm-mw-section-5"
| Überschrift 5
|style="font-family:monospace;"| <span style="font-weight:bold;"><span style="color: #0076DD; font-weight: normal;">=====</span> Überschrift 5 <span style="color: #0076DD; font-weight: normal;">=====</span></span>
|- id="pre.cm-mw-section-6"
| Überschrift 6
|style="font-family:monospace;"| <span style="font-weight:bold;"><span style="color: #0076DD; font-weight: normal;">======</span> Überschrift 6 <span style="color: #0076DD; font-weight: normal;">======</span></span>
|- id="cm-mw-section-header"
| Gleichheitszeichen
|style="font-family:monospace;"| <span style="color: #0076DD; font-weight: normal;">==</span>
|-
! colspan="2" style="text-align:left;"| Vorlageneinbindung
|-
| '''Komplexes Beispiel'''
|style="font-family:monospace;"| <span style="color: #8800CC; font-weight: bold;">&#123;&#123;</span><span style="color: #8800CC; font-weight: bold;"><u>Literatur</u></span><span style="color: #8800CC; font-weight: bold;">&#124;</span><span style="color: #8800CC; font-weight: bold;">Titel=</span><span style="color: #8800CC; font-weight: normal;">Das Leben, das Universum und der ganze Rest</span><span style="color: #8800CC; font-weight: bold;">&#125;&#125;</span>
|- id="cm-mw-template-name"
| Name der Vorlage
|style="font-family:monospace;"| <span style="color: #8800CC; font-weight: bold;"><u>Literatur</u></span>
|- id="cm-mw-template-argument-name"
| Parametername
|style="font-family:monospace;"| <span style="color: #8800CC; font-weight: bold;">Titel=</span>
|- id="cm-mw-template"
| Sonstige Inhalte
|style="font-family:monospace;"| <span style="color: #8800CC; font-weight: normal;">Das Leben, das Universum und der ganze Rest</span>
|- id="cm-mw-template-delimiter"
| Pipe-Symbol
|style="font-family:monospace;"| <span style="color: #8800CC; font-weight: bold;">&#124;</span>
|- id="cm-mw-template-bracket"
| öffnende / schließende Klammern
|style="font-family:monospace;"| <span style="color: #8800CC; font-weight: bold;">&#123;&#123; &#125;&#125;</span>
|- id="cm-mw-template-ground<br />.cm-mw-template2-ground<br />.cm-mw-template3-ground"
| '''Verschachtelte Vorlagen'''<br /> (Stile sind mit Nummer der Verschachtelungstiefe separat [[#templateNesting|adressierbar]])
|style="font-family:monospace;"| <span style="color: #8800CC;"><span style="font-weight: bold;">&#123;&#123;<u>Literatur</u>&#124;Titel=&#123;&#123;<u>lang</u>&#124;</span>fr<span style="font-weight: bold;">&#124;</span>J’accuse…!<span style="font-weight: bold;">&#125;&#125;&#125;&#125;</span></span>
|-
! colspan="2" style="text-align:left;"| Vorlagenparameter
|-
| '''Komplexes Beispiel'''
|style="font-family:monospace;"| <span style="color: #AC6600; font-weight: normal;">&#123;&#123;&#123;</span><span style="color: #AC6600; font-weight: bold;">foo</span><span style="color: #AC6600; font-weight: bold;">&#124;</span><span style="color: #AC6600; font-weight: normal;">bar</span><span style="color: #AC6600; font-weight: normal;">&#125;&#125;&#125;</span>
|- id="cm-mw-templatevariable-name"
| Parametername
|style="font-family:monospace; color:#AC6600; font-weight: bold;"| foo
|- id="cm-mw-templatevariable"
| Rückfallwert
|style="font-family:monospace; color:#AC6600;"| bar
|- id="cm-mw-templatevariable-bracket"
| öffnende / schließende Klammern
|style="font-family:monospace; color:#AC6600;"| &#123;&#123;&#123; &#125;&#125;&#125;
|- id="cm-mw-templatevariable-delimiter"
| Pipe-Symbol
|style="font-family:monospace; color:#AC6600; font-weight: bold;"| &#124;
|-
! colspan="2" style="text-align:left;"| Parserfunktionen
|-
| '''Komplexes Beispiel'''
|style="font-family:monospace;"| <span style="background:#7700AA0A;"><span style="color: #DD3333; font-weight: bold;">&#123;&#123;</span><span style="color: #DD3333; font-weight: bold;">#invoke:</span>Wlink<span style="color:#DD3333;">&#124;</span>failsafe<span style="color: #DD3333; font-weight: bold;">&#125;&#125;</span></span>
|- id="cm-mw-parserfunction-name"
| Funktionsname
|style="font-family:monospace;"| <span style="color: #DD3333; font-weight: bold;">#invoke</span> <span style="color: #DD3333; font-weight: bold;">PAGENAME</span>
|- id="cm-mw-parserfunction"
| Funktionsparameter
|style="font-family:monospace;"| <span style="background:#FAF6FC;">Wlink failsafe</span>
|- id="cm-mw-parserfunction-bracket"
| öffnende / schließende Klammern
|style="font-family:monospace;"| <span style="color: #DD3333; font-weight: bold;">&#123;&#123; &#125;&#125;</span>
|- id="cm-mw-parserfunction-delimiter"
| Trennzeichen
|style="font-family:monospace;"| <span style="color: #DD3333; font-weight: bold;">:</span>
|-
! colspan="2" style="text-align:left;"| MediaWiki-Erweiterungen
|-
|colspan="2" style="text-align:left;"| Elemente der MediaWiki-Erweiterungen können eigene Stile definieren und verwenden.<br /> Der Inhalt von <code>&lt;ref></code>-Elementen wird wieder als Wikitext aufgefasst.
|-
| '''Komplexes Beispiel'''
|style="font-family:monospace;"| <span style="color: #14866D; font-weight: normal;">&lt;</span><span style="color: #14866D; font-weight: bold;">poem</span> <span style="color: #14866D; font-weight: normal;">style="padding: 1em;"</span><span style="color: #14866D; font-weight: normal;">&gt;</span><span style="background:#FCFAFD;">Zeichenkette</span><div style="display: flex; background: #FCFAFD;">Ganze Zeile</div><span style="background:#FCFAFD;">Zeichenkette</span><span style="color: #14866D; font-weight: normal;">&lt;/</span><span style="color: #14866D; font-weight: bold;">poem</span><span style="color: #14866D; font-weight: normal;">&gt;</span>
|- id="pre.cm-mw-exttag"
| Vollständige (feste) Zeile zwischen Tags
|style="font-family:monospace;"| <div style="display: flex; background: #FCFAFD;">Ganze Zeile</div>
|- id="cm-mw-exttag"
| Text zwischen Tags
|style="font-family:monospace;"| <span style="background:#FCFAFD;">Zeichenkette … Zeichenkette</span>
|- id="cm-mw-exttag-name"
| Name des Tags
|style="font-family:monospace;"| <span style="color: #14866D; font-weight: bold;">poem</span>
|- id="cm-mw-exttag-bracket"
| öffnende / schließende Klammern
|style="font-family:monospace;"| <span style="color: #14866D; font-weight: normal;">&lt; &gt;</span>
|- id="cm-mw-exttag-attribute"
| Attributzuweisung (vollständig)
|style="font-family:monospace;"| <span style="color: #14866D; font-weight: normal;">style="padding: 1em;"</span>
|- id="cm-mw-tag-pre"
| Vorformatierter Text
|style="font-family:monospace;"| <span style="color: #14866D; font-weight: normal;">&lt;</span><span style="color: #14866D; font-weight: bold;">pre</span><span style="color: #14866D; font-weight: normal;">&gt;</span><span style="background:#F5F5F5">foo bar</span><span style="color: #14866D; font-weight: normal;">&lt;/</span><span style="color: #14866D; font-weight: bold;">pre</span><span style="color: #14866D; font-weight: normal;">&gt;</span>
|- id="cm-mw-tag-nowiki"
| ''nowiki''-Text
|style="font-family:monospace;"| <span style="color: #14866D; font-weight: normal;">&lt;</span><span style="color: #14866D; font-weight: bold;">nowiki</span><span style="color: #14866D; font-weight: normal;">&gt;</span><span style="background:#F5F5F5">foo bar</span><span style="color: #14866D; font-weight: normal;">&lt;/</span><span style="color: #14866D; font-weight: bold;">nowiki</span><span style="color: #14866D; font-weight: normal;">&gt;</span>
<!-- generic colors & "tag" name here -->
|-
! colspan="2" style="text-align:left;"| Tags für HTML
|-
| '''Komplexes Beispiel'''
|style="font-family:monospace;"| <span style="color: #14866D; font-weight: normal;">&lt;</span><span style="color: #14866D; font-weight: bold;">span</span> <span style="color: #14866D; font-weight: normal;">style="foo"</span><span style="color: #14866D; font-weight: normal;">&gt;</span>foo bar<span style="color: #14866D; font-weight: normal;">&lt;/</span><span style="color: #14866D; font-weight: bold;">span</span><span style="color: #14866D; font-weight: normal;">&gt;</span>
|- id="cm-mw-htmltag-name"
| Name des HTML-Tags
|style="font-family:monospace;"| <span style="color: #14866D; font-weight: bold;">span</span>
|- id="cm-mw-htmltag-bracket"
| öffnende / schließende Klammern
|style="font-family:monospace;"| <span style="color: #14866D; font-weight: normal;">&lt; &gt;</span>
|- id="cm-mw-htmltag-attribute"
| Attributzuweisung (vollständig)
|style="font-family:monospace;"| <span style="color: #14866D; font-weight: normal;">style="foo"</span>
|-
! colspan="2" style="text-align:left;" id="intLink"| Wikilinks
|-
| '''Komplexe Beispiele'''
|style="font-family:monospace;"|
<span style="background:#2211990A;"><span style="color: #000AAA; font-weight: normal;">&#91;&#91;</span><span style="color: #000AAA; font-weight: normal; text-decoration: underline;">foo bar</span><span style="color: #000AAA; font-weight: normal;">&#93;&#93;</span></span><br />
<span style="background:#2211990A;"><span style="color: #000AAA; font-weight: normal;">&#91;&#91;</span><span style="color: #000AAA; font-weight: normal; text-decoration: underline;">foo</span><span style="color: #000AAA; font-weight: normal;">#</span><span style="color: #1188EE; font-weight: normal;">Abschnitt</span><span style="color: #000AAA; font-weight: normal;">&#124;</span>Beschriftung<span style="color: #000AAA; font-weight: normal;">&#93;&#93;</span></span>
|- id="cm-mw-link-pagename"
| Verlinkte Wikiseiten
|style="font-family:monospace;"| <span style="color: #000AAA; font-weight: normal;">foo bar</span>
|- id="cm-mw-pagename"
| Anklickbare Wikilinks
|style="font-family:monospace;"| <span style="text-decoration:underline">foo bar</span>
|- id="cm-mw-link"
| <code>#</code>
|style="font-family:monospace;"| <span style="color: #000AAA; font-weight: normal;">#</span>
|- id="cm-mw-link-tosection"
| [[Fragmentbezeichner]] (nach&nbsp;<code>#</code>)
|style="font-family:monospace;"| <span style="color: #1188EE; font-weight: normal;">Abschnitt</span>
|- id="cm-mw-link-bracket"
| öffnende / schließende Klammern
|style="font-family:monospace;"| <span style="color: #000AAA; font-weight: normal;">&#91;&#91; &#93;&#93;</span>
|- id="cm-mw-link-delimiter"
| Pipe-Symbol
|style="font-family:monospace;"| <span style="color: #000AAA; font-weight: normal;">&#124;</span>
|- id="cm-mw-link-text"
| Linktext
|style="font-family:monospace;"| Beschriftung
|-
! colspan="2" style="text-align:left;"| Externe Links
|-
| '''Komplexe Beispiele'''
|style="font-family:monospace;"|
<span style="color: #000AAA; font-weight: bold;">http://</span><span style="color: #000AAA; font-weight: normal;">example.org/</span><br />
<span style="background:#2211990A;"><span style="color: #000AAA; font-weight: bold;">&#91;</span><span style="color: #000AAA; font-weight: bold;">https://</span><span style="color: #000AAA; font-weight: normal;">www.example.org/</span><span style="color: #000AAA; font-weight: bold;">&#93;</span></span><br />
<span style="background:#2211990A;"><span style="color: #000AAA; font-weight: bold;">&#91;</span><span style="color: #000AAA; font-weight: bold;">https://</span><span style="color: #000AAA; font-weight: normal;">www.example.org/</span>&nbsp;Beschriftung<span style="color: #000AAA; font-weight: bold;">&#93;</span></span>
|- id="cm-mw-free-extlink-protocol"
| Protokoll einer offenen URL
|style="font-family:monospace;"| <span style="color: #000AAA; font-weight: bold;">http://</span>
|- id="cm-mw-extlink-protocol"
| Protokoll eines geklammerten Weblinks
|style="font-family:monospace;"| <span style="color: #000AAA; font-weight: bold;">https://</span>
|- id="cm-mw-free-extlink"
| Host, Pfad usw. einer offenen URL
|style="font-family:monospace;"| <span style="color: #000AAA; font-weight: normal;">example.org/</span>
|- id="cm-mw-extlink"
| Host, Pfad usw. eines geklammerten Weblinks
|style="font-family:monospace;"| <span style="color: #000AAA; font-weight: normal;">www.example.org/</span>
|- id="cm-mw-extlink-text"
| Linktext
|style="font-family:monospace;"| Beschriftung
|- id="cm-mw-extlink-bracket"
| öffnende / schließende Klammern
|style="font-family:monospace;"| <span style="color: #000AAA; font-weight: bold;">&#91; &#93;</span>
|-
! colspan="2" style="text-align:left;"| Tabellen
|-
| '''Komplexes Beispiel'''
|style="font-family:monospace;"|
<span style="color: #DD0088; font-weight: bold;">&#123;&#124;</span> <span style="color:#DD0088;">class="wikitable"</span><br />
<span style="color: #DD0088; font-weight: bold;">&#124;-</span><br />
<span style="color: #DD0088; font-weight: bold;">!</span> <span style="font-weight:bold;">Überschrift</span> <span style="color: #DD0088; font-weight: bold;">!!</span> <span style="font-weight:bold;">Überschrift</span><br />
<span style="color: #DD0088; font-weight: bold;">&#124;-</span><br />
<span style="color: #DD0088; font-weight: bold;">&#124;</span> Zelle <span style="color: #DD0088; font-weight: bold;">&#124;&#124;</span> Zelle<br />
<span style="color: #DD0088; font-weight: bold;">&#124;&#125;</span>
|- id="cm-mw-table-bracket"
| öffnende / schließende Klammern mit Pipe-Symbol
|style="font-family:monospace;"| <span style="color: #DD0088; font-weight: bold;">&#123;&#124; &#124;&#125;</span>
|- id="cm-mw-table-delimiter"
| Trennung von Zeilen und Spalten
|style="font-family:monospace;"| <span style="color: #DD0088; font-weight: bold;">&#124; &#124;- !</span>
|- id="cm-mw-table-definition"
| Attributzuweisung (vollständig)
|style="font-family:monospace;"| <span style="color: #DD0088; font-weight: normal;">class="wikitable"</span>
|- id="cm-mw-table-caption"
| Spalten- bzw. Zeilen-Überschrift
|style="font-family:monospace;"| <span style="color: #DD0088; font-weight: bold;">!</span> <span style="font-weight:bold;">Überschrift</span>
|-
! colspan="2" style="text-align:left;"| Sonstige
|-
| Magische Wörter
|style="font-family:monospace;"| <!-- phab:T170041 --><span style="color:#0076DD; background:#EEEEEE; font-weight:bold;"><nowiki>__TOC__</nowiki></span>
|-
| <code>&lt;math></code><br /> (behandelt wie Erweiterungen)
|style="font-family:monospace;"| <span style="color: #14866D; font-weight: normal;">&lt;</span><span style="color: #14866D; font-weight: bold;">math</span><span style="color: #14866D; font-weight: normal;">&gt;</span><span style="background:#7700AA0A;">\sum_{i=0}^\infty 2^{-i}</span><span style="color: #14866D; font-weight: normal;">&lt;/</span><span style="color: #14866D; font-weight: bold;">math</span><span style="color: #14866D; font-weight: normal;">&gt;</span>
|-
| <code>&lt;syntaxhighlight></code><br /> (behandelt wie Erweiterungen)
|style="font-family:monospace;"| <span style="color: #14866D; font-weight: normal;">&lt;</span><span style="color: #14866D; font-weight: bold;">syntaxhighlight</span><span style="color: #14866D;">&gt;</span><span style="background:#7700AA0A;">...</span><span style="color: #14866D;">&lt;/</span><span style="color: #14866D; font-weight: bold;">syntaxhighlight</span><span style="color: #14866D; font-weight: normal;">&gt;</span>
|-
| Kategorie<br /> (behandelt als [[#intLink|Wikilink]])
|style="font-family:monospace;"| <span style="background:#2211990A;"><span style="color: #000AAA;">&#91;&#91;</span><span style="color: #000AAA; text-decoration: underline;">Kategorie:foo bar</span><span style="color: #000AAA;">&#93;&#93;</span></span>
|-
| Medieneinbindung<br /> (behandelt als [[#intLink|Wikilink]])
|style="font-family:monospace;"| <span style="background:#2211990A;"><span style="color: #000AAA;">&#91;&#91;</span><span style="color: #000AAA;">Datei:OOjs UI icon bold-f.svg</span><span style="color: #000AAA;">&#93;&#93;</span></span>
|-
| Mehrdeutige Zeichenanzeige<br /> (nbsp thinsp ndash mdash minus etc.)
| <span style="color: #14866D;">&amp;nbsp; &amp;minus;</span>
|-
|colspan="2" style="text-align:left;"| ''(bislang keine individuellen Selektoren definiert)''
|-
| <code>;</code> am Zeilenbeginn<br /> (Definitionsterm)
| <code>;</code>
|-
| Farbwerte in Attributen
|
<!-- file preview (wikEd) -->
|}
== Persönliche Konfiguration ==
Es gibt für angemeldete Konten drei Möglichkeiten, die Darstellung an eigene Wünsche anzupassen:
# Das CSS aller Dekorationen kann nach privaten Vorstellungen umdefiniert werden; siehe [[#configCSS|folgenden Abschnitt]].
# In den [[Hilfe:Einstellungen#{{int:prefs-syntax-highlighting}}|allgeminen Einstellungen]] kann ausgewählt werden, für welche Inhaltsmodelle CodeMirror aktiviert werden soll, also für Wikitext und für andere Codes gesondert.<!-- 2026 wmf 1.44 -->
# Im [[#settings|Einstellungsmenü]] werden unterschiedliche Optionen angeboten, die für dieses Konto dauerhaft hinterlegt werden.<!-- wmf 1.44 -->
<!--
ein für Farbenfehlsichtige günstigeres Farbschema aktiviert werden.
[[mw:Help:Extension:CodeMirror #Colorblind mode]] (englisch).
-->
=== {{Anker|settings}} Pop-Up ===
{{Wikipedia:Technik/Text/Edit/CodeMirror/!settings}}
== {{Anker|configCSS}} CSS-Konfiguration ==
Das CSS aller Dekorationen kann nach privaten Vorstellungen [[../../../Skin/CSS|umdefiniert]] werden. In den nachstehenden Abschnitten werden hierzu Beispiele aufgeführt.
=== {{Anker|syntaxError}} Syntaxfehler ===
Fehler wie etwa ein unerwartetes schließendes Tag werden in roter Schriftfarbe angezeigt. Nachstehend etwas knalliger: <span style="background-color:#FF0000; color:#FFFF00; font-weight:bold;">Gelbe Fettschrift auf rotem Grund</span>.
<syntaxhighlight lang="css">
.cm-error {
  color:            #FFFF00 ! important;
  background-color:  #FF0000 ! important;
  font-weight:      bold;
}
</syntaxhighlight>
Die Zuweisung muss ggf. nach allen anderen privaten erfolgen, damit die Hintergrundfarbe wirksam wird. Gleichwohl wird die spezielle CSS-Definition des Werkzeugs womöglich erst nachträglich geladen, und überschreibt dann teilweise wieder die private Spezifikation.
=== {{Anker|selectRegion}} Ausgewählter Bereich ===
Die vorgegebene Markierung der Selektierung ist recht unscheinbar aufgefallen. Nachstehend beispielsweise in <span style="background:#0099EE; color:#FFFFFF;">weißer Schrift auf blauem Grund</span>.
<syntaxhighlight lang="css">
.CodeMirror-selected {
  background-color: #0099EE ! important;
  color:            #FFFFFF ! important;
}
</syntaxhighlight>
Die Zuweisung muss ggf. nach allen anderen privaten erfolgen, damit die Hintergrundfarbe wirksam wird. Gleichwohl wird die spezielle CSS-Definition des Werkzeugs womöglich erst nachträglich geladen, und überschreibt dann teilweise wieder die private Spezifikation.
=== {{Anker|templateNesting}} Verschachtelte Vorlagen ===
Um bei ineinander verschachtelten Vorlagen die Zuordnung geschweifter Klammern und verschiedener Bereiche besser überblicken zu können, kann mit nachstehenden CSS-Definitionen für bis zu acht Ebenen an Vorlageneinbindungen der Wirkungsbereich in kontrastierenden Farben hinterlegt werden.
{| class="wikitable"
|-
! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7 !! 8
|- style="color: #8800CC; font-family:monospace;"
{{/templateNesting|td|1}}
{{/templateNesting|td|2}}
{{/templateNesting|td|3}}
{{/templateNesting|td|4}}
{{/templateNesting|td|5}}
{{/templateNesting|td|6}}
{{/templateNesting|td|7}}
{{/templateNesting|td|8}}
|}
{{#tag:syntaxhighlight|
{{/templateNesting|css|1}}
{{/templateNesting|css|2}}
{{/templateNesting|css|3}}
{{/templateNesting|css|4}}
{{/templateNesting|css|5}}
{{/templateNesting|css|6}}
{{/templateNesting|css|7}}
{{/templateNesting|css|8}}
|lang=css}}
Die Hinterlegung führt allerdings auch dazu, dass die Markierung ausgewählter Bereiche nicht mehr sichtbar ist; diese müsste ggf. nachträglich in der Kaskade [[#selectRegion|erneut vereinbart]] werden.
Alternativ kann statt mit der Hintergrundfarbe <code style="white-space:nowrap">background-color: #</code> die Rahmenfarbe gesetzt werden, wodurch Hintergrundfarben besser durchscheinen, die dafür weniger auffallend sind und mehrzeilig wenig geglückt wirken: <code style="white-space:nowrap">border: 1px solid #</code>''Farbwert''. Statt des vollen Rahmens kann auch die Unterstreichung (was mit dem Namen der Vorlage kollidiert) oder Überstreichung deklariert werden.
=== {{Anker|syntaxSkripte}} Anpassung an bisherige Benutzerskripte ===
Wer zuvor bereits an die Farbgebung der Benutzerskripte
* [[Benutzer:Schnark/js/syntaxhighlight.js|Schnarks Syntaxhighlighter]] oder
* [[mw:User:Remember_the_dot/Syntax_highlighter#Colors|Rememberthedots Syntaxhighlighter]]
gewöhnt war, kann über diese Konfiguration die Farben anpassen.
<syntaxhighlight lang="css">
.cm-mw-pagename {                              /* Seitenname */
font-weight: normal; }                    /* nicht fett */
.cm-mw-skipformatting {                        /* Leerzeichen am Zeilenanfang, vorformatierter Text */
background-color: #E8E8E8;
}
.cm-mw-list,                                    /* Listenelemente Aufzählungszeichen (*) und (#) */
.cm-mw-indenting,                              /* Einrückung (:) */
.cm-mw-mnemonic,                                /* HTML-Code &amp; &nbsp; ... */
.cm-mw-comment {                                /* Auskommentierter Text <!-- ... --> */
background-color:#E6FFE6; color:#000000;    /* Hintergrund hellgrün, Textfarbe schwarz **/
}
.cm-mw-signature {                              /* Kürzel für Signatur und Zeitangabe */
background-color:#FFCC66; color:#000000;    /* Hintergrund gelborange, Textfarbe schwarz */
}
.cm-mw-hr,                                      /* Kürzel für horizontele Linie */
.cm-mw-apostrophes-bold,                        /* Fettschriftformat ''' */
.cm-mw-apostrophes-italic {                    /* Kursivschriftformat '' */
background-color:#E5E5E5; color:#000000; font-weight: normal; font-style: normal;  /* Nur für die Zeichen nicht der Inhalt // Hintergrund hellgrau, Textfarbe schwarz */
}
pre.cm-mw-section-1,                            /* Überschriftenebenen 1 bis 6 */
pre.cm-mw-section-2,
pre.cm-mw-section-3,
pre.cm-mw-section-4,
pre.cm-mw-section-5,
pre.cm-mw-section-6 {                          /* nicht fett, nicht unterstrichen und nicht groß */
font-size: 1em; line-height:1.1em; font-weight: normal; background-color:#E5E5E5; text-decoration: none;
}
.cm-mw-section-header {                        /* Überschriftenkürzel (==) */
background-color:#E5E5E5; color:#000000;    /* Hintergrund hellgrau, Textfarbe schwarz */
}
.cm-mw-template,                                /* Vorlageninhalt */
.cm-mw-template-name,                          /* Vorlagenname */
.cm-mw-template-argument-name,                  /* Parametername */
.cm-mw-template-delimiter,                      /* Trennzeichen (|) */
.cm-mw-template-bracket {                      /* Vorlagenklammern {{…}} */
  color:#000000; font-weight:normal; text-decoration: none; /* nicht fett, nicht unterstrichen, Textfarbe schwarz */
}
.cm-mw-template-ground,                        /* Hintergrundfarbe Ebene 1 */
.cm-mw-template-ext-ground,                    /* Eingebettete Vorlage Ebene 1 */
.cm-mw-template-ext2-ground,                    /* Eingebettete Vorlage Ebene 2 */
.cm-mw-template-ext3-ground {                  /* Eingebettete Vorlage Ebene 3 */
  background-color: #FFFFCC;                  /* hellgelb */
}
.cm-mw-templatevariable,                        /* Variableninhalt */
.cm-mw-templatevariable-name,                  /* Variablenname */
.cm-mw-templatevariable-bracket,                /* Variablenklapper {{{…}}} */
.cm-mw-templatevariable-delimiter {            /* Variablentrenner Pipe (|) */
background-color:#FFCC66; color:#000000; font-weight: normal; /* Hintergrund gelborange, Textfarbe schwarz, nicht fett */
}
.cm-mw-parserfunction,                          /* Parserfunktionen */
.cm-mw-parserfunction-name,                    /* Funktionsbezeichnung (#…) */
.cm-mw-parserfunction-bracket,                  /* Klammern {{…}} */
.cm-mw-parserfunction-delimiter {              /* Trennzeichen (:) */
background-color:#FFFFCC; color:#000000; font-weight:normal; /* Hintergrund hellgelb, Textfarbe schwarz, nicht fett */
}
pre.cm-mw-tag-pre,                              /* pre, nowiki und ref Tags wie exttag behandeln */
pre.cm-mw-tag-nowiki,
pre.cm-mw-tag-ref,
.cm-mw-tag-pre,
.cm-mw-tag-nowiki,
.cm-mw-tag-ref,
pre.cm-mw-exttag,
.cm-mw-exttag,                                  /* Inhaltsbereich zwischen den Erweiterungstags */
.cm-mw-exttag-name,                            /* Tagname, wie poem, math, gallery */
.cm-mw-exttag-bracket,                          /* Klammer für Tags (<>) */
.cm-mw-exttag-attribute {                      /* Attribute class und style-Zuweisungen */
background-color:#FFE6FF; color:#000000; font-weight:normal; /* Hintergrund rosarot, Textfarbe schwarz, nicht fett */
}
pre.cm-mw-htmltag,
.cm-mw-htmltag,                                /* Inhaltsbereich html-Tags */
.cm-mw-htmltag-name,                            /* Tagname, wie div, span, small, code */
.cm-mw-htmltag-bracket,                        /* Klammer für Tags (<>) */
.cm-mw-htmltag-attribute {                      /* Attribute class und style-Zuweisungen */
background-color:#FFE6FF; color:#000000; font-weight:normal; text-decoration: none; /* Hintergrund rosarot (funktioniert noch nicht für den Inhalt), Textfarbe schwarz, nicht fett */
}
.cm-mw-link,                                    /* Inhalt Link */
.cm-mw-link-pagename,                          /* Zielseitenname */
.cm-mw-link-tosection,                          /* Abschnittslinkbezeichnung */
.cm-mw-link-bracket,                            /* Klammer für interne Links [[…]] */
.cm-mw-link-text,                              /* sichtbarer Linktext */
.cm-mw-link-ground,                            /* Hintergrundfarbe Link */
.cm-mw-link-delimiter {                        /* Trennzeichen Pipe (|) */
background-color:#E6E6FF; color:#000000; font-weight:normal; text-decoration: none;
}
.cm-mw-extlink,                                  /* Externer Link www.… */
.cm-mw-free-extlink,
.cm-mw-extlink-protocol,                        /* http */
.cm-mw-free-extlink-protocol,
.cm-mw-extlink-text,                            /* sichtbarer Linktext */
.cm-mw-extlink-bracket {                        /* Klammer für externe Links […] */
background-color:#E6FFFF; color:#000000; font-weight:normal; text-decoration: none; /* Hintergrund hellblau, Textfarbe schwarz */
}
.cm-mw-table-bracket,                            /* Tabellensyntax Beginn und Ende {| |} */
pre.cm-mw-table-definition,
.cm-mw-table-definition,                        /* Tabellenzuweisung class style */
pre.cm-mw-table-caption,
.cm-mw-table-caption {                          /* Tabellenüberschrift */
background-color:#FFFFCC; color:#000000; font-weight:normal; text-decoration: none; /* Hintergrund hellgelb, Textfarbe schwarz, nicht fett */
}
pre.cm-mw-table-delimiter,
.cm-mw-table-delimiter {                        /* Trennzeichen Pipe (|) und (!) */
background-color:#FFCC66; color:#000000; font-weight:normal; /* Hintergrund hellgelb, Zeichenfarbe schwarz, nicht fett */
}
</syntaxhighlight>
== Ausblick ==
{{Phab|project=ECMI|dir=resources/lib/codemirror/mode|title=Dieses Verzeichnis}} legt nahe, dass auch andere formale Sprachen analog [[../CodeEditor/]] unterstützt werden könnten, wobei dort aber auch weitere Analysen und dynamische Funktionen hinzukommen.
== Weitere Informationen ==
{{Meta|Community Tech/Wikitext editor syntax highlighting|Wikitext editor syntax highlighting|suffix=Technische Informationen (englisch)}}
{{MediaWiki|Extension:CodeMirror}}
{{Phabricator|ICON=1|Engage=mediawiki-extensions-Codemirror |SUFFIX=Fehlermeldungen und Funktionswünsche|ENGL=1}}
* {{Phab|project=ECMI}}
** {{Phab|project=ECMI|file=resources/mode/mediawiki/mediawiki.css|title=Stildefinitionen}}
* [[Wikipedia:Technische Wünsche/Topwünsche/Syntaxhervorhebung]]
'''Extern'''
* [http://codemirror.net/ codemirror.net] (englisch)
** [http://codemirror.net/doc/manual.html User manual and reference guide]
** [http://codemirror.net/mode/ Language modes] – Andere Programmiersprachen usw.
== Anmerkungen ==
<references />
<noinclude>
[[Kategorie:Wikipedia:Technik/Text/Edit|CodeMirror]]
</noinclude>

Aktuelle Version vom 9. Oktober 2026, 11:23 Uhr

WP Bearbeitung Texteditor Syntax Syntaxhervorhebung von Wikitext im Editor

CodeMirror – Syntaxhervorhebung für Wiki-Seiten


CodeMirror ist eine Möglichkeit, bei der klassischen Bearbeitung von Wikitext eine Syntaxhervorhebung einzuschalten; ebenso für Lua, CSS, JavaScript sowie JSON.

Das ist einsetzbar sowohl bei:

  • Einfacher, reiner Quelltextbearbeitung,
  • kombiniert mit VisualEditor-Quelltextbearbeitung.

Seit August 2017 wurde dies als Beta-Funktion angeboten, seit Mitte Juni 2018 wird es für alle Bearbeiter bereitgestellt. Im April 2026 wurde eine neue Version aktiviert (phab:T419332).

Solltest du bereits ein anderes Skript aktiviert haben, das die Syntax hervorhebt, wie beispielsweise Benutzer:Schnark/js/syntaxhighlight, dieses bitte deaktivieren, da es zu unschönen Darstellungsfehlern innerhalb des Bearbeitungsfensters bis hin zur Verdoppelung oder Unsichtbarkeit des Fensterinhalts führen kann.

Funktionalität

Der Text im Bearbeitungsfeld wird bei der Bearbeitung mit entsprechendem Markup dargestellt.

  • In die gängigen Werkzeugleisten für die Quelltextbearbeitung (einschließlich VisualEditor) wird ein Button eingefügt, der es erlaubt, den Modus ab- und wieder einzuschalten.
  • Es handelt sich um ein diagonal nach links unten zeigendes Markierstiftsymbol; CodeMirror abgeschaltet = schwarz Syntax und CodeMirror aktiv = blau Syntax ; auch: /
  • Der letzte Status wirkt sich auch auf alle parallel geöffneten Fenster aus, sobald die Seite neu aufgebaut wird.

Tastendrücke, Einfügen, Löschen wird wie gewohnt an der Cursorposition wirksam; Kopieren und Einfügen ist möglich.

Im April 2026 wurde eine spezielle Fehleranalyse für den Quelltext aktiviert, siehe dazu die Unterseite Lint.

Nachteile

Je nach Größe der Seite, Leistungsfähigkeit des Rechners und möglicherweise Art des Browsers können die Reaktionen sehr träge ausfallen; womöglich ganz ausbleiben.

Es gibt folgende Einschränkungen gegenüber der regulären Quelltext-Bearbeitung:

  • Kein „Rückgängig“ (Undo) per Kontextmenü (Strg+Z funktioniert)
  • keine Rechtschreibprüfung[1]
  • kein Wechsel zwischen den Elementen des Gesamtformulars mittels Tab

Klammerpaare hervorheben

Animiertes Beispiel

Bei aktivierter Syntaxhervorhebung können seit Ende Januar 2021 bei der Bearbeitung des Wikitextes zusammengehörende Klammerpaare gefunden werden. Dafür wird der Cursor direkt hinter einer Klammer positioniert. Dies kann hinter der öffnenden oder schließenden Klammer geschehen. Angezeigt werden die zugehörigen Klammerelemente durch eine hellgraue Hinterlegung. Dies erleichtert die Suche nach fehlenden Klammern, beispielsweise bei der Erstellung von Vorlagensyntax, es kann auch ein zugehöriges Tabellenende gefunden werden. Hier muss der Cursor lediglich in der selben Zeile stehen, in der sich die öffnende {| class="wikitable" oder schließende |} Syntax befindet.

Beispiele:

  • [http://example.org/ Text]
  • {{Literatur|Titel={{lang|fr|J’accuse…!}}}}
  • {{{foo|bar}}} – {{{foo|bar}}} – {{{foo|bar}}}
  • (Text in einfachen Klammern)

Zeilennummerierung

Wikitexteditor 2017 auf Basis des Visual Editors
Texteditor mit aktivierten CodeMirror

Insbesondere bei der Vorlagenerstellung kann es vorteilhaft sein, die Inhalte einzelner Zeilen besser erkennen zu können. Der CodeMirror bietet seit Mitte April 2021 daher bei der Bearbeitung einer Seite am linken Rand eine Zeilennummerierung an. Besteht eine Seite aus mehreren Abschnitten und es wird nur ein einzelner Abschnitt bearbeitet, so beginnt die Zählung immer mit 1, es erfolgt dann also keine fortlaufende Zählung der Gesamtzeilen.

Es sollte beachtet werden, dass die in einem Difflink angezeigte Zeilennummer erheblich von der Nummerierung im aktuellen Bearbeitungsfeld abweichen kann.

Simulation


Zeilennummer in der Vergleichsansicht
Aktuelle Version Dein Text
Zeile 115: Zeile 115:

Unveränderter Text

Unveränderter Text

-

* [http://www.igs-ff.de/ Website der Integrierten Gesamtschule Franzsches Feld] igs-ff.de.de

+

* [http://www.igsff.de/ Website der Integrierten Gesamtschule Franzsches Feld] igsff.de.de

Unveränderter Text

Unveränderter Text

Nummerierung im Bearbeitungsfenster
Syntax
Erweitert Sonderzeichen Hilfe 
Vorschau
 
001 == Weblinks ==
002 Unveränderter Text
003 * [http://www.igsff.de/ Website der Integrierten Gesamtschule Franzsches Feld] igsff.de.de
004 Unveränderter Text
005

Die Nummerierung ist an das Werkzeug gekoppelt und steht nicht für andere Editoren zur Verfügung.

Markup

Die nachstehend aufgelisteten Farben, Hervorhebungen und sonstigen Dekorationen werden zur Unterscheidung verwendet.

Element CodeMirror
Elementar
Festes Format (Leerzeichen am Zeilenbeginn)  foo bar
Aufzählung (Sternchen * oder # am Zeilenbeginn) * foo bar
# foo bar
Signatur ∼∼∼∼
----
Trennlinie
Einrückung (Doppelpunkte) ::: foo bar
HTML-Entity &amp;
HTML-Kommentar <-- Kommentar -->
Fettschrift '''Fett'''
''Kursiv''
Kursivschrift
Überschriften
Überschrift 1 = Überschrift 1=
Überschrift 2 == Überschrift 2 ==
Überschrift 3 === Überschrift 3 ===
Überschrift 4 ==== Überschrift 4 ====
Überschrift 5 ===== Überschrift 5 =====
Überschrift 6 ====== Überschrift 6 ======
Gleichheitszeichen ==
Vorlageneinbindung
Komplexes Beispiel {{Literatur|Titel=Das Leben, das Universum und der ganze Rest}}
Name der Vorlage Literatur
Parametername Titel=
Sonstige Inhalte Das Leben, das Universum und der ganze Rest
Pipe-Symbol |
öffnende / schließende Klammern {{ }}
Verschachtelte Vorlagen
(Stile sind mit Nummer der Verschachtelungstiefe separat adressierbar)
{{Literatur|Titel={{lang|fr|J’accuse…!}}}}
Vorlagenparameter
Komplexes Beispiel {{{foo|bar}}}
Parametername foo
Rückfallwert bar
öffnende / schließende Klammern {{{ }}}
Pipe-Symbol |
Parserfunktionen
Komplexes Beispiel {{#invoke:Wlink|failsafe}}
Funktionsname #invoke PAGENAME
Funktionsparameter Wlink failsafe
öffnende / schließende Klammern {{ }}
Trennzeichen :
MediaWiki-Erweiterungen
Elemente der MediaWiki-Erweiterungen können eigene Stile definieren und verwenden.
Der Inhalt von <ref>-Elementen wird wieder als Wikitext aufgefasst.
Komplexes Beispiel <poem style="padding: 1em;">Zeichenkette
Ganze Zeile
Zeichenkette</poem>
Vollständige (feste) Zeile zwischen Tags
Ganze Zeile
Text zwischen Tags Zeichenkette … Zeichenkette
Name des Tags poem
öffnende / schließende Klammern < >
Attributzuweisung (vollständig) style="padding: 1em;"
Vorformatierter Text <pre>foo bar</pre>
nowiki-Text <nowiki>foo bar</nowiki>
Tags für HTML
Komplexes Beispiel <span style="foo">foo bar</span>
Name des HTML-Tags span
öffnende / schließende Klammern < >
Attributzuweisung (vollständig) style="foo"
Wikilinks
Komplexe Beispiele

[[foo bar]]
[[foo#Abschnitt|Beschriftung]]

Anklickbare Wikilinks foo bar
Externe Links
Komplexe Beispiele

http://example.org/
[https://www.example.org/]
[https://www.example.org/ Beschriftung]

Tabellen
Komplexes Beispiel

{| class="wikitable"
|-
! Überschrift !! Überschrift
|-
| Zelle || Zelle
|}

öffnende / schließende Klammern mit Pipe-Symbol {| |}
Trennung von Zeilen und Spalten | |- !
Attributzuweisung (vollständig) class="wikitable"
Spalten- bzw. Zeilen-Überschrift ! Überschrift
Sonstige
Magische Wörter __TOC__
<math>
(behandelt wie Erweiterungen)
<math>\sum_{i=0}^\infty 2^{-i}</math>
<syntaxhighlight>
(behandelt wie Erweiterungen)
<syntaxhighlight>...</syntaxhighlight>
Kategorie
(behandelt als Wikilink)
[[Kategorie:foo bar]]
Medieneinbindung
(behandelt als Wikilink)
[[Datei:OOjs UI icon bold-f.svg]]
Mehrdeutige Zeichenanzeige
(nbsp thinsp ndash mdash minus etc.)
&nbsp; &minus;
(bislang keine individuellen Selektoren definiert)
; am Zeilenbeginn
(Definitionsterm)
;
Farbwerte in Attributen

Persönliche Konfiguration

Es gibt für angemeldete Konten drei Möglichkeiten, die Darstellung an eigene Wünsche anzupassen:

  1. Das CSS aller Dekorationen kann nach privaten Vorstellungen umdefiniert werden; siehe folgenden Abschnitt.
  2. In den allgeminen Einstellungen kann ausgewählt werden, für welche Inhaltsmodelle CodeMirror aktiviert werden soll, also für Wikitext und für andere Codes gesondert.
  3. Im Einstellungsmenü werden unterschiedliche Optionen angeboten, die für dieses Konto dauerhaft hinterlegt werden.

Pop-Up

Wikipedia:Technik/Text/Edit/CodeMirror/!settings

CSS-Konfiguration

Das CSS aller Dekorationen kann nach privaten Vorstellungen umdefiniert werden. In den nachstehenden Abschnitten werden hierzu Beispiele aufgeführt.

Syntaxfehler

Fehler wie etwa ein unerwartetes schließendes Tag werden in roter Schriftfarbe angezeigt. Nachstehend etwas knalliger: Gelbe Fettschrift auf rotem Grund.

.cm-error {
   color:             #FFFF00 ! important;
   background-color:  #FF0000 ! important;
   font-weight:       bold;
}

Die Zuweisung muss ggf. nach allen anderen privaten erfolgen, damit die Hintergrundfarbe wirksam wird. Gleichwohl wird die spezielle CSS-Definition des Werkzeugs womöglich erst nachträglich geladen, und überschreibt dann teilweise wieder die private Spezifikation.

Ausgewählter Bereich

Die vorgegebene Markierung der Selektierung ist recht unscheinbar aufgefallen. Nachstehend beispielsweise in weißer Schrift auf blauem Grund.

.CodeMirror-selected {
   background-color: #0099EE ! important;
   color:            #FFFFFF ! important;
}

Die Zuweisung muss ggf. nach allen anderen privaten erfolgen, damit die Hintergrundfarbe wirksam wird. Gleichwohl wird die spezielle CSS-Definition des Werkzeugs womöglich erst nachträglich geladen, und überschreibt dann teilweise wieder die private Spezifikation.

Verschachtelte Vorlagen

Um bei ineinander verschachtelten Vorlagen die Zuordnung geschweifter Klammern und verschiedener Bereiche besser überblicken zu können, kann mit nachstehenden CSS-Definitionen für bis zu acht Ebenen an Vorlageneinbindungen der Wirkungsbereich in kontrastierenden Farben hinterlegt werden.

Wikipedia:Technik/Text/Edit/CodeMirror/templateNestingWikipedia:Technik/Text/Edit/CodeMirror/templateNestingWikipedia:Technik/Text/Edit/CodeMirror/templateNestingWikipedia:Technik/Text/Edit/CodeMirror/templateNestingWikipedia:Technik/Text/Edit/CodeMirror/templateNestingWikipedia:Technik/Text/Edit/CodeMirror/templateNestingWikipedia:Technik/Text/Edit/CodeMirror/templateNestingWikipedia:Technik/Text/Edit/CodeMirror/templateNesting
1 2 3 4 5 6 7 8
[[:Wikipedia:Technik/Text/Edit/CodeMirror/templateNesting]]
[[:Wikipedia:Technik/Text/Edit/CodeMirror/templateNesting]]
[[:Wikipedia:Technik/Text/Edit/CodeMirror/templateNesting]]
[[:Wikipedia:Technik/Text/Edit/CodeMirror/templateNesting]]
[[:Wikipedia:Technik/Text/Edit/CodeMirror/templateNesting]]
[[:Wikipedia:Technik/Text/Edit/CodeMirror/templateNesting]]
[[:Wikipedia:Technik/Text/Edit/CodeMirror/templateNesting]]
[[:Wikipedia:Technik/Text/Edit/CodeMirror/templateNesting]]

Die Hinterlegung führt allerdings auch dazu, dass die Markierung ausgewählter Bereiche nicht mehr sichtbar ist; diese müsste ggf. nachträglich in der Kaskade erneut vereinbart werden.

Alternativ kann statt mit der Hintergrundfarbe background-color: # die Rahmenfarbe gesetzt werden, wodurch Hintergrundfarben besser durchscheinen, die dafür weniger auffallend sind und mehrzeilig wenig geglückt wirken: border: 1px solid #Farbwert. Statt des vollen Rahmens kann auch die Unterstreichung (was mit dem Namen der Vorlage kollidiert) oder Überstreichung deklariert werden.

Anpassung an bisherige Benutzerskripte

Wer zuvor bereits an die Farbgebung der Benutzerskripte

gewöhnt war, kann über diese Konfiguration die Farben anpassen.

.cm-mw-pagename {                              /* Seitenname */
	font-weight: normal; }                     /* nicht fett */

.cm-mw-skipformatting {                         /* Leerzeichen am Zeilenanfang, vorformatierter Text */
	background-color: #E8E8E8;
}
.cm-mw-list,                                    /* Listenelemente Aufzählungszeichen (*) und (#) */
.cm-mw-indenting,                               /* Einrückung (:) */
.cm-mw-mnemonic,                                /* HTML-Code &amp; &nbsp; ... */
.cm-mw-comment {                                /* Auskommentierter Text <!-- ... --> */
	background-color:#E6FFE6; color:#000000;    /* Hintergrund hellgrün, Textfarbe schwarz **/
}
.cm-mw-signature {                              /* Kürzel für Signatur und Zeitangabe */
	background-color:#FFCC66; color:#000000;    /* Hintergrund gelborange, Textfarbe schwarz */
}
.cm-mw-hr,                                      /* Kürzel für horizontele Linie */
.cm-mw-apostrophes-bold,                        /* Fettschriftformat ''' */
.cm-mw-apostrophes-italic {                     /* Kursivschriftformat '' */
	background-color:#E5E5E5; color:#000000; font-weight: normal; font-style: normal;  /* Nur für die Zeichen nicht der Inhalt // Hintergrund hellgrau, Textfarbe schwarz */
}

pre.cm-mw-section-1,                            /* Überschriftenebenen 1 bis 6 */
pre.cm-mw-section-2,
pre.cm-mw-section-3,
pre.cm-mw-section-4,
pre.cm-mw-section-5,
pre.cm-mw-section-6 {                           /* nicht fett, nicht unterstrichen und nicht groß */
	font-size: 1em; line-height:1.1em; font-weight: normal; background-color:#E5E5E5; text-decoration: none;
}

.cm-mw-section-header {                         /* Überschriftenkürzel (==) */
	background-color:#E5E5E5; color:#000000;    /* Hintergrund hellgrau, Textfarbe schwarz */
}
.cm-mw-template,                                /* Vorlageninhalt */
.cm-mw-template-name,                           /* Vorlagenname */
.cm-mw-template-argument-name,                  /* Parametername */
.cm-mw-template-delimiter,                      /* Trennzeichen (|) */
.cm-mw-template-bracket {                       /* Vorlagenklammern {{…}} */
   color:#000000; font-weight:normal; text-decoration: none; /* nicht fett, nicht unterstrichen, Textfarbe schwarz */
}

.cm-mw-template-ground,                         /* Hintergrundfarbe Ebene 1 */
.cm-mw-template-ext-ground,                     /* Eingebettete Vorlage Ebene 1 */
.cm-mw-template-ext2-ground,                    /* Eingebettete Vorlage Ebene 2 */
.cm-mw-template-ext3-ground {                   /* Eingebettete Vorlage Ebene 3 */
   background-color: #FFFFCC;                   /* hellgelb */
}

.cm-mw-templatevariable,                        /* Variableninhalt */
.cm-mw-templatevariable-name,                   /* Variablenname */
.cm-mw-templatevariable-bracket,                /* Variablenklapper {{{…}}} */
.cm-mw-templatevariable-delimiter {             /* Variablentrenner Pipe (|) */
	background-color:#FFCC66; color:#000000; font-weight: normal; /* Hintergrund gelborange, Textfarbe schwarz, nicht fett */
}

.cm-mw-parserfunction,                          /* Parserfunktionen */
.cm-mw-parserfunction-name,                     /* Funktionsbezeichnung (#…) */
.cm-mw-parserfunction-bracket,                  /* Klammern {{…}} */
.cm-mw-parserfunction-delimiter {               /* Trennzeichen (:) */
	background-color:#FFFFCC; color:#000000; font-weight:normal; /* Hintergrund hellgelb, Textfarbe schwarz, nicht fett */
}

pre.cm-mw-tag-pre,                              /* pre, nowiki und ref Tags wie exttag behandeln */
pre.cm-mw-tag-nowiki,
pre.cm-mw-tag-ref,
.cm-mw-tag-pre,
.cm-mw-tag-nowiki,
.cm-mw-tag-ref,
pre.cm-mw-exttag,
.cm-mw-exttag,                                  /* Inhaltsbereich zwischen den Erweiterungstags */
.cm-mw-exttag-name,                             /* Tagname, wie poem, math, gallery */
.cm-mw-exttag-bracket,                          /* Klammer für Tags (<>) */
.cm-mw-exttag-attribute {                       /* Attribute class und style-Zuweisungen */
	background-color:#FFE6FF; color:#000000; font-weight:normal; /* Hintergrund rosarot, Textfarbe schwarz, nicht fett */
}

pre.cm-mw-htmltag,
.cm-mw-htmltag,                                 /* Inhaltsbereich html-Tags */
.cm-mw-htmltag-name,                            /* Tagname, wie div, span, small, code */
.cm-mw-htmltag-bracket,                         /* Klammer für Tags (<>) */
.cm-mw-htmltag-attribute {                      /* Attribute class und style-Zuweisungen */
	background-color:#FFE6FF; color:#000000; font-weight:normal; text-decoration: none; /* Hintergrund rosarot (funktioniert noch nicht für den Inhalt), Textfarbe schwarz, nicht fett */
}

.cm-mw-link,                                    /* Inhalt Link */
.cm-mw-link-pagename,                           /* Zielseitenname */
.cm-mw-link-tosection,                          /* Abschnittslinkbezeichnung */
.cm-mw-link-bracket,                            /* Klammer für interne Links [[…]] */
.cm-mw-link-text,                               /* sichtbarer Linktext */
.cm-mw-link-ground,                             /* Hintergrundfarbe Link */
.cm-mw-link-delimiter {                         /* Trennzeichen Pipe (|) */ 
	background-color:#E6E6FF; color:#000000; font-weight:normal; text-decoration: none;
}

.cm-mw-extlink,                                  /* Externer Link www.… */
.cm-mw-free-extlink,
.cm-mw-extlink-protocol,                         /* http */
.cm-mw-free-extlink-protocol,
.cm-mw-extlink-text,                             /* sichtbarer Linktext */
.cm-mw-extlink-bracket {                         /* Klammer für externe Links […] */
	background-color:#E6FFFF; color:#000000; font-weight:normal; text-decoration: none; /* Hintergrund hellblau, Textfarbe schwarz */
}

.cm-mw-table-bracket,                            /* Tabellensyntax Beginn und Ende {| |} */
pre.cm-mw-table-definition,
.cm-mw-table-definition,                         /* Tabellenzuweisung class style */
pre.cm-mw-table-caption,
.cm-mw-table-caption {                           /* Tabellenüberschrift */
	background-color:#FFFFCC; color:#000000; font-weight:normal; text-decoration: none; /* Hintergrund hellgelb, Textfarbe schwarz, nicht fett */
}
pre.cm-mw-table-delimiter,
.cm-mw-table-delimiter {                         /* Trennzeichen Pipe (|) und (!) */ 
	background-color:#FFCC66; color:#000000; font-weight:normal; /* Hintergrund hellgelb, Zeichenfarbe schwarz, nicht fett */
}

Ausblick

Dieses Verzeichnis legt nahe, dass auch andere formale Sprachen analog CodeEditor unterstützt werden könnten, wobei dort aber auch weitere Analysen und dynamische Funktionen hinzukommen.

Weitere Informationen

Meta-Wiki: Wikitext editor syntax highlighting – Technische Informationen (englisch)
MediaWiki: Extension:CodeMirror – Freie Wikisoftware (englisch)
Phabricator – Workboard: #mediawiki-extensions-Codemirror – Fehlermeldungen und Funktionswünsche (englisch)

Extern

Anmerkungen