Quelltext-Einfügungen


Mit editMenus wird für alle Benutzer bei der Quelltextbearbeitung eine „Sonderzeichenleiste“ unterhalb des Bearbeitungsfeldes angeboten. Sie ermöglicht das Einfügen von Textsequenzen in Eingabefelder. Neben einzelnen Schriftzeichen werden auch komplexere Syntax-Elemente wie etwa Vorlagen-Einbindungen angeboten.

Benutzer können das Verhalten individuell konfigurieren.

Position in der Seite und Grundfunktion

Direkt unterhalb jedes mehrzeiligen Text-Eingabefeldes wird eine Auswahl angeboten. Es besteht aus:

  • Einem Auswahl-Angebot für Einzel-Menüs, beispielsweise für unterschiedliche Sprachen.
  • Rechts daneben das ausgewählte Einzel-Menü mit Verlinkungen.

Ein Klick auf ein Element des Einzel-Menü fügt im momentan aktiven Textbereich das zugeordnete Element ein. Im einfachsten Fall ist das ein einzelnes Sonderzeichen oder ein Buchstabe aus einer fremden Sprache oder Schrift.

  • Wenn an der betreffenden Stelle bereits ein Textbereich ausgewählt (markiert) gewesen war, dann wird bei manchen Syntax-Elementen dieser Textinhalt mit einer Anfangs- und End-Syntax direkt umschlossen, andernfalls werden diese unmittelbar aufeinander folgend eingefügt.
  • Die Einfügung soll auf jedes Textfeld in der Seite wirken (also etwa auch auf einen Bearbeitungskommentar), in dem zuletzt der Mauszeiger aktiv wurde. Es ist dabei bedeutungslos, an welcher Stelle der Seite die Auswahl angeboten wird. Es kann jedoch nicht ausgeschlossen werden, dass dieser Vorgang durch andere Skripte beeinflusst wird, wenn diese virtuell Textfelder aktivieren und zum zuletzt benutzten machen.
  • Wird gleichzeitig die Taste Strg gedrückt, dann wird eine ggf. vorhandene Textauswahl überschrieben.
  • Während der Bearbeitung derselben Seitenversion bleibt auch nach erneutem Seitenaufbau (etwa zur Vorschau) die Sprachauswahl erhalten.

Standardaussehen der editMenus-Sonderzeichenleiste:

 

Minimierung und Einblenden

Rechts außen befindet sich eine kleine rote Schaltfläche mit einem „X“.

  • Darüber lässt sich das angebotene Einzel-Menü ausblenden.
  • Ein Klick in das Gesamt-Auswahlmenü, insbesondere die Auswahl einer anderen Sprache, macht es wieder sichtbar.
  • Beim Neuaufbau der Seite wird es jedoch zurzeit sicherheitshalber wieder eingeblendet.
  • Nach einer gewissen Gewöhnungsphase soll eine Ausblendung jedoch für diese Bearbeitung einer Seitenversion erhalten bleiben. Bei Bearbeitung einer anderen Seite erfolgt standardmäßig immer eine Einblendung.

Ausgestattete Seiten

Zurzeit sind das:

  • Jede Seite während der Quelltext-Bearbeitung (unabhängig davon, ob Textfelder ggf. für die Veränderung gesperrt sind)
  • Hochlade-Formular

Perspektivisch ist geplant, genau gleiche und dafür geeignete Zusammenstellungen auch für die Nutzung im VisualEditor anzubieten.

Die genannten Seiten werden zwar immer ausgestattet; zurzeit werden jedoch projektweit nur Definitionen vom Typ wikitext angeboten. Auf Seiten anderer Inhaltsmodelle (Programmiersprachen) haben diese keine Wirkung; es könnten jedoch projektweite oder benutzerdefinierte Angebote speziell für bestimmte Programmiersprachen entstehen.

Konfiguration

Deaktivierung

Angemeldete Konten können das Gadget deaktivieren – durch Entfernung des Häkchens.

Ohne aktive Benutzeranmeldung wird das Gadget immer gestartet.

Aktivierung

Es kann sein, dass man das anders handhaben möchte:

  • Nur unter bestimmten, programmatisch formulierten Bedingungen.
  • Auf Mobilgeräten; die Standard-Aktivierung des Projekts wirkt nur bei Desktop.

Aus jeder Seite der deutschsprachigen Wikipedia heraus funktioniert dann mittels JavaScript:

mw.loader.load( "ext.gadget.editMenus" );

Interaktive Optionen

Alle angemeldeten und nicht angemeldeten Benutzer („IP“) können einige grundlegende Anpassungen ohne Programmieraufwand vornehmen:

  • Sprachenliste in der Reihenfolge verändern – persönlich benötigte Sprachen zuerst
    • Eine Liste individuell wichtiger Einzel-Menüs kann benannt werden.
    • Beliebig viele Bezeichner von Einzel-Menüs, etwa die Namen einer Fremdsprache, können eingetragen werden.
    • Durch Leerzeichen voneinander getrennt; wichtigste zuerst.
    • Nicht existierende Bezeichner, die vorsorglich einsortiert wären oder nur manchmal vorhanden sind, wären unschädlich und würden ignoriert.
  • Verhalten der Ein- und Ausblendung beeinflussen
  • Hilfe-Link ? auf diese Seite hier nicht mehr einfügen
  • Generierung der HTML-Elemente unterdrücken – einzige Möglichkeit für nicht angemeldete Benutzer, die Bereitstellung frühzeitig wieder abzubrechen. Bei angemeldeten Benutzern bietet sich die Deaktivierung an, wodurch das Gadget gar nicht erst gestartet wird.

Dazu ist (bei aktiviertem Gadget) diese Spezialseite aufzurufen und etwas abzuwarten, bis sie dynamisch aufgebaut worden ist.

  • Entsprechende Wünsche können konfiguriert werden.
  • Abschließend ist die Schaltfläche + anzuklicken.
  • Im Erfolgsfall müsste ein grünes Häkchen   erscheinen.
  • Das Zahnradsymbol   öffnet die Optionen für ein bestimmtes Gadget.

Bei nicht angemeldeten Benutzern wird versucht, die Optionen dauerhaft im Browserprofil zu hinterlegen. Bei angemeldeten Benutzern erfolgt eine zentrale Verwaltung auf dem Wiki-Server.

CSS

Die wesentlichen Elemente haben folgende Selektoren:

.menuSwitcher
Gesamte Werkzeugleiste
.menuSwitcher-panel
Jedes Einzel-Auswahlmenü
.menuSwitcher-panel-n
Einzel-Auswahlmenü; n ist eine bei der ersten Konfiguration vergebene fortlaufende Nummer ab 1
.editMenus-button
Als Button dekorierte Schaltflächen
.menuSwitcher a[data-id="i"]
Einfüge-Link; i ist eine bei der ersten Konfiguration vergebene fortlaufende Nummer ab 0 über alle Einzel-Menüs gezählt.
.menuSwitcher option[data-item="n"]
Element der Liste der Einzel-Menüs; n ist eine bei der ersten Konfiguration vergebene fortlaufende Nummer ab 1 für das Einzel-Auswahlmenü

Damit können eigene Dekorationen vereinbart werden.

Nachstehend einige Beispiele. Für unangemeldete Benutzer müssen die Menüs vollständig angeboten werden, weil diese kaum Möglichkeiten zur Konfiguration haben. Angemeldete Benutzer können in erster Linie von ihnen nicht benötigte Elemente ausblenden.

Alle Schaltflächen im Button-Stil ausblenden

.editMenus-button {
   display: none;
}

Umlaute ÄÖÜäöü und ß ausblenden; ß ist Nr. 11 und span sind die umgebenden Trennzeichen

.menuSwitcher-panel-1 span,
.menuSwitcher a[data-id="7"],
.menuSwitcher a[data-id="8"],
.menuSwitcher a[data-id="9"],
.menuSwitcher a[data-id="10"],
.menuSwitcher a[data-id="11"],
.menuSwitcher a[data-id="12"],
.menuSwitcher a[data-id="13"] {
   display: none;
}

Alle Schaltflächen im Button-Stil ausgenommen Signatur ausblenden

.editMenus-button {
   display: none;
}
.menuSwitcher a[data-id="6"] {
   display: inline;
}

Die Nummerierungen können sich durch projektweite Konfigurationsanpassungen verändern.

Konfiguration mittels JavaScript

Fortgeschrittene Konfigurationsmöglichkeiten werden angemeldeten und nicht angemeldeten Benutzern mittels JavaScript ermöglicht.

Es können eigene Menüs programmiert werden und weitgehend in die projektweit angebotene Gestaltung eingegriffen werden.

Cookies

Im Speicher des Browsers wird bis zum Ende der Sitzung, ggf. bereits zum Schließen des Tabs ein Element menuSwitcher.dewiki hinterlegt. Darin wird der Status in der letzten Seitenaktion vermerkt.

Für nicht angemeldete Benutzer können Konfigurationseinstellungen dauerhaft im Browserprofil hinterlegt werden.

Syntaxhervorhebungs-Werkzeuge

Die Werkzeuge wie CodeMirror verstecken das Bearbeitungsfeld. Es gibt deshalb zurzeit keine Möglichkeit, die hier angebotene Einfügungstechnik mit einem solchen Modus zu kombinieren.

  • Es wird keine Benachrichtigung versandt, wenn durch Bearbeiter ein solcher Modus ein- oder ausgeschaltet wird. Damit ist keine Berücksichtigung möglich.
  • Selbst wenn eine Programmierschnittstelle angeboten wird, sind für die Einfügungen zusätzliche Kenntnisse erforderlich: Welcher Bereich ist zurzeit selektiert (markiert)? Es sollen davor und dahinter öffnende und schließende Elemente eingefügt werden; das ist jedoch nicht bekannt.
  • editMenus verwendet eine Programmierschnittstelle von MediaWiki für das Analysieren der Cursor-Position, die momentane Textauswahl und die Einfügung selbst. Diese MediaWiki-Funktion müsste für alle Hilfsmittel die überlagerten Syntaxhervorhebungs-Modi transparent verarbeiten, so dass eine Anwendung auch nichts davon wissen muss, was für ein sonstiger Modus eingeschaltet sein könnte.

Vorgeschichte

Bis 5. November 2018 war seit 2006/2009 eine unter der internen Bezeichnung Onlyifediting programmierte Hilfestellung verwendet worden.

  • Diese basierte auf einer Technologie der Wiki-Software von 2006, von der die WMF im Frühjahr 2017 angekündigt hatte, sie würde die Wartung und Pflege dieser uralten und nicht mehr mit den modernen Anwendungen kompatiblen Programmbibliothek einstellen, zumal weltweit nur noch 0,03 % der aktiven Benutzer die darauf beruhende Werkzeugleiste nutzen.[1]

Das hier dargestellte Gadget entspricht genau der Funktionalität wie sie sich seit 2009 entwickelt hatte, mit folgenden Abweichungen:

  • Vorangestellt werden ein halbes Dutzend Buttons, die den wichtigsten Funktionen der gleichzeitig weggefallenen „Toolbar 2006“ entsprechen.
  • Das Gadget wird unmittelbar unterhalb des Bearbeitungsfeldes dargestellt, und nicht mehr jenseits von Urheberrechtshinweisen und den Schaltflächen für Vorschau und Publizieren (Speichern).

Zeitgemäße Möglichkeiten und Maßnahmen kamen hinzu.

Weitere Informationen

Anmerkungen

  1. Editing News #1/2017 (deutsch; Archivseite 450 kB)