„Wikipedia:Technik/Text/Edit/CodeMirror“ – Versionsunterschied
AZ: Die Seite wurde neu angelegt: {{SeitenordnungTest | PageID = {{subst:PAGEID}} | Obereinordnung = Verwaltung | Untereinordnung = Benutzer | Einordnung = | Ordnung = }} |
KKeine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
{{SeitenordnungTest | {{SeitenordnungTest | ||
| PageID = | | PageID = 93648 | ||
| Obereinordnung = Verwaltung | | Obereinordnung = Verwaltung | ||
| Untereinordnung = | | Untereinordnung = Bearbeitung | ||
| Einordnung = | | Einordnung = | ||
| Ordnung = | | Ordnung = | ||
| Hinweis = [[Syntaxhervorhebung]] von [[Wikitext]] im Editor | |||
}} | }} | ||
{{../../../!header | |||
|Text=CodeMirror – Syntaxhervorhebung für Wiki-Seiten}} | |||
'''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;">'''{|''' 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;">{{<u>Literatur</u>|Titel=<span style="box-shadow: inset 0 0 1px 1px #999999; background: #EEEEEE; font-weight: bold; padding: 1px;">{</span>{<u>lang</u>|</span>fr<span style="font-weight: bold;">|</span>J’accuse…!<span style="font-weight: bold;">}<span style="box-shadow: inset 0 0 1px 1px #999999; background: #EEEEEE; font-weight: bold; padding: 1px;">}</span>}}</span></span> | |||
* <span style="color: #FF5500;">{{<span style="box-shadow: inset 0 0 1px 1px #999999; background: #EEEEEE; font-weight: bold; padding: 1px;">{</span><span style="font-weight: bold;">foo|</span>bar<span style="box-shadow: inset 0 0 1px 1px #999999; background: #EEEEEE; font-weight: bold; padding: 1px;">}</span>}} <span style="color: #000000;">–</span> {<span style="box-shadow: inset 0 0 1px 1px #999999; background: #EEEEEE; font-weight: bold; padding: 1px;">{</span>{<span style="font-weight: bold;">foo|</span>bar}<span style="box-shadow: inset 0 0 1px 1px #999999; background: #EEEEEE; font-weight: bold; padding: 1px;">}</span>} <span style="color: #000000;">–</span> <span style="box-shadow: inset 0 0 1px 1px #999999; background: #EEEEEE; font-weight: bold; padding: 1px;">{</span>{{<span style="font-weight: bold;">foo|</span>bar}}<span style="box-shadow: inset 0 0 1px 1px #999999; background: #EEEEEE; font-weight: bold; padding: 1px;">}</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;">[http://www.igsff.de/</span> Website der Integrierten Gesamtschule Franzsches Feld<span style="color: #000AAA;">]</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;"> </span>foo bar | |||
|- id="cm-mw-list" | |||
| Aufzählung (Sternchen <code>*</code> oder <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; | |||
|- id="cm-mw-comment" | |||
| HTML-Kommentar | |||
|style="font-family:monospace; color: #72777D; font-weight: normal;"| <-- Kommentar --> | |||
|- 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;">{{</span><span style="color: #8800CC; font-weight: bold;"><u>Literatur</u></span><span style="color: #8800CC; font-weight: bold;">|</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;">}}</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;">|</span> | |||
|- id="cm-mw-template-bracket" | |||
| öffnende / schließende Klammern | |||
|style="font-family:monospace;"| <span style="color: #8800CC; font-weight: bold;">{{ }}</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;">{{<u>Literatur</u>|Titel={{<u>lang</u>|</span>fr<span style="font-weight: bold;">|</span>J’accuse…!<span style="font-weight: bold;">}}}}</span></span> | |||
|- | |||
! colspan="2" style="text-align:left;"| Vorlagenparameter | |||
|- | |||
| '''Komplexes Beispiel''' | |||
|style="font-family:monospace;"| <span style="color: #AC6600; font-weight: normal;">{{{</span><span style="color: #AC6600; font-weight: bold;">foo</span><span style="color: #AC6600; font-weight: bold;">|</span><span style="color: #AC6600; font-weight: normal;">bar</span><span style="color: #AC6600; font-weight: normal;">}}}</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;"| {{{ }}} | |||
|- id="cm-mw-templatevariable-delimiter" | |||
| Pipe-Symbol | |||
|style="font-family:monospace; color:#AC6600; font-weight: bold;"| | | |||
|- | |||
! colspan="2" style="text-align:left;"| Parserfunktionen | |||
|- | |||
| '''Komplexes Beispiel''' | |||
|style="font-family:monospace;"| <span style="background:#7700AA0A;"><span style="color: #DD3333; font-weight: bold;">{{</span><span style="color: #DD3333; font-weight: bold;">#invoke:</span>Wlink<span style="color:#DD3333;">|</span>failsafe<span style="color: #DD3333; font-weight: bold;">}}</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;">{{ }}</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><ref></code>-Elementen wird wieder als Wikitext aufgefasst. | |||
|- | |||
| '''Komplexes Beispiel''' | |||
|style="font-family:monospace;"| <span style="color: #14866D; font-weight: normal;"><</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;">></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;"></</span><span style="color: #14866D; font-weight: bold;">poem</span><span style="color: #14866D; font-weight: normal;">></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;">< ></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;"><</span><span style="color: #14866D; font-weight: bold;">pre</span><span style="color: #14866D; font-weight: normal;">></span><span style="background:#F5F5F5">foo bar</span><span style="color: #14866D; font-weight: normal;"></</span><span style="color: #14866D; font-weight: bold;">pre</span><span style="color: #14866D; font-weight: normal;">></span> | |||
|- id="cm-mw-tag-nowiki" | |||
| ''nowiki''-Text | |||
|style="font-family:monospace;"| <span style="color: #14866D; font-weight: normal;"><</span><span style="color: #14866D; font-weight: bold;">nowiki</span><span style="color: #14866D; font-weight: normal;">></span><span style="background:#F5F5F5">foo bar</span><span style="color: #14866D; font-weight: normal;"></</span><span style="color: #14866D; font-weight: bold;">nowiki</span><span style="color: #14866D; font-weight: normal;">></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;"><</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;">></span>foo bar<span style="color: #14866D; font-weight: normal;"></</span><span style="color: #14866D; font-weight: bold;">span</span><span style="color: #14866D; font-weight: normal;">></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;">< ></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;">[[</span><span style="color: #000AAA; font-weight: normal; text-decoration: underline;">foo bar</span><span style="color: #000AAA; font-weight: normal;">]]</span></span><br /> | |||
<span style="background:#2211990A;"><span style="color: #000AAA; font-weight: normal;">[[</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;">|</span>Beschriftung<span style="color: #000AAA; font-weight: normal;">]]</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 <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;">[[ ]]</span> | |||
|- id="cm-mw-link-delimiter" | |||
| Pipe-Symbol | |||
|style="font-family:monospace;"| <span style="color: #000AAA; font-weight: normal;">|</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;">[</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;">]</span></span><br /> | |||
<span style="background:#2211990A;"><span style="color: #000AAA; font-weight: bold;">[</span><span style="color: #000AAA; font-weight: bold;">https://</span><span style="color: #000AAA; font-weight: normal;">www.example.org/</span> Beschriftung<span style="color: #000AAA; font-weight: bold;">]</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;">[ ]</span> | |||
|- | |||
! colspan="2" style="text-align:left;"| Tabellen | |||
|- | |||
| '''Komplexes Beispiel''' | |||
|style="font-family:monospace;"| | |||
<span style="color: #DD0088; font-weight: bold;">{|</span> <span style="color:#DD0088;">class="wikitable"</span><br /> | |||
<span style="color: #DD0088; font-weight: bold;">|-</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;">|-</span><br /> | |||
<span style="color: #DD0088; font-weight: bold;">|</span> Zelle <span style="color: #DD0088; font-weight: bold;">||</span> Zelle<br /> | |||
<span style="color: #DD0088; font-weight: bold;">|}</span> | |||
|- id="cm-mw-table-bracket" | |||
| öffnende / schließende Klammern mit Pipe-Symbol | |||
|style="font-family:monospace;"| <span style="color: #DD0088; font-weight: bold;">{| |}</span> | |||
|- id="cm-mw-table-delimiter" | |||
| Trennung von Zeilen und Spalten | |||
|style="font-family:monospace;"| <span style="color: #DD0088; font-weight: bold;">| |- !</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><math></code><br /> (behandelt wie Erweiterungen) | |||
|style="font-family:monospace;"| <span style="color: #14866D; font-weight: normal;"><</span><span style="color: #14866D; font-weight: bold;">math</span><span style="color: #14866D; font-weight: normal;">></span><span style="background:#7700AA0A;">\sum_{i=0}^\infty 2^{-i}</span><span style="color: #14866D; font-weight: normal;"></</span><span style="color: #14866D; font-weight: bold;">math</span><span style="color: #14866D; font-weight: normal;">></span> | |||
|- | |||
| <code><syntaxhighlight></code><br /> (behandelt wie Erweiterungen) | |||
|style="font-family:monospace;"| <span style="color: #14866D; font-weight: normal;"><</span><span style="color: #14866D; font-weight: bold;">syntaxhighlight</span><span style="color: #14866D;">></span><span style="background:#7700AA0A;">...</span><span style="color: #14866D;"></</span><span style="color: #14866D; font-weight: bold;">syntaxhighlight</span><span style="color: #14866D; font-weight: normal;">></span> | |||
|- | |||
| Kategorie<br /> (behandelt als [[#intLink|Wikilink]]) | |||
|style="font-family:monospace;"| <span style="background:#2211990A;"><span style="color: #000AAA;">[[</span><span style="color: #000AAA; text-decoration: underline;">Kategorie:foo bar</span><span style="color: #000AAA;">]]</span></span> | |||
|- | |||
| Medieneinbindung<br /> (behandelt als [[#intLink|Wikilink]]) | |||
|style="font-family:monospace;"| <span style="background:#2211990A;"><span style="color: #000AAA;">[[</span><span style="color: #000AAA;">Datei:OOjs UI icon bold-f.svg</span><span style="color: #000AAA;">]]</span></span> | |||
|- | |||
| Mehrdeutige Zeichenanzeige<br /> (nbsp thinsp ndash mdash minus etc.) | |||
| <span style="color: #14866D;">&nbsp; &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 & ... */ | |||
.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> | |||
Version vom 7. Oktober 2026, 15:15 Uhr
WPDer für das Attribut „Obereinordnung“ des Datentyps Seite angegebene Wert „{{{Obrnrdnng}}}“ enthält ungültige Zeichen oder ist unvollständig. Er kann deshalb während einer Abfrage oder bei einer Annotation unerwartete Ergebnisse verursachen.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).
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

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


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 | ||||||||||||||||
| ||||||||||||||||
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 konfigurierbar.
| 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 | & |
| 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]] |
| Verlinkte Wikiseiten | foo bar |
| Anklickbare Wikilinks | foo bar |
#
|
# |
Fragmentbezeichner (nach #)
|
Abschnitt |
| öffnende / schließende Klammern | [[ ]] |
| Pipe-Symbol | | |
| Linktext | Beschriftung |
| Externe Links | |
| Komplexe Beispiele |
http://example.org/ |
| Protokoll einer offenen URL | http:// |
| Protokoll eines geklammerten Weblinks | https:// |
| Host, Pfad usw. einer offenen URL | example.org/ |
| Host, Pfad usw. eines geklammerten Weblinks | www.example.org/ |
| Linktext | Beschriftung |
| öffnende / schließende Klammern | [ ] |
| Tabellen | |
| Komplexes Beispiel |
{| class="wikitable" |
| ö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.) |
− |
| (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:
- Das CSS aller Dekorationen kann nach privaten Vorstellungen umdefiniert werden; siehe folgenden Abschnitt.
- 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.
- 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 & ... */
.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
Extern
- codemirror.net (englisch)
- User manual and reference guide
- Language modes – Andere Programmiersprachen usw.