User:Jack who built the house/Convenient Discussions/de

This page is a translated version of a page User:Jack who built the house/Convenient Discussions and the translation is 93% complete. Changes to the translation template, respectively the source language can be submitted through User:Jack who built the house/Convenient Discussions and have to be approved by a translation administrator.
Outdated translations are marked like this.
Shortcut

Das Logo des Skripts. Die Farben stellen die Hintergründe der verschiedenen Kommentartypen dar

Ein Screenshot einer Seite, die Convenient Discussions verwendet
Convenient Discussions fügt der Beobachtungsliste eine Reihe von Elementen hinzu: die "CD"-Schaltflächengruppe links neben der Schaltfläche für die Beobachtungslisteneinstellungen und die "Kommentar"-Links rechts neben den Zusammenfassungen.

Convenient Discussions

2021 Coolest Tool
Award Winner

in the category
Versatile

Convenient Discussions (CD) ist ein JavaScript-Tool, das eine Shell für das bestehende MediaWiki-Diskussionssystem bereitstellt und die Benutzererfahrung mit Talk-Seiten auf verschiedene Weise verbessert.

Funktionen

  • Verfassen und Bearbeiten von Kommentaren ohne Wechsel zu einer separaten Seite
    • @mentions, [[#Kommentarlinks]], [[Wikilinks]], {{templates}} und <tags> werden automatisch vervollständigt
    • Zitieren von Kommentaren mit erhaltener Formatierung
    • Automatisches Ausfüllen der Bearbeitungszusammenfassung mit Angabe des Empfängers des Kommentars
    • Speichern von Kommentarentwürfen, um den Inhalt der Formulare nach unerwarteten Ereignissen wie Browserabstürzen wiederherzustellen
  • Erstellen von Themen und Unterabschnitten
  • Neu gestaltete Gesprächsseiten, mit Autor und Datum über den Kommentaren (opt-in) und dünnen Linien zur Kennzeichnung von Themen
  • Behandlung von "Outdent"-Vorlagen
  • Zusammenklappbare (und automatisch zusammenklappbare) Themen
  • Kommentar-Zeitstempel in lokaler Zeit und beliebigem Format, einschließlich relativ
  • Hervorheben und Navigieren in neuen Kommentaren (über das Navigationsfeld oder das Inhaltsverzeichnis)
  • Hervorheben eigener Kommentare
  • Überprüfen auf neue Kommentare im Hintergrund und automatisches Rendern von einfachen Kommentaränderungen
  • Abonnieren von Themen, was sich auf Benachrichtigungen und Hervorhebung von Themen an mehreren Stellen auswirkt (basierend auf DiscussionTools)
  • Desktop-Benachrichtigungen über Antworten auf die Kommentare des Benutzers und Kommentare in Themen, die der Benutzer abonniert hat, auf offenen Seiten (opt-in)
  • Verschieben von Themen zwischen Gesprächsseiten
  • Danken für Bearbeitungen, die Kommentare hinzugefügt haben
  • Kopieren von Links zu Kommentaren
  • Springen zu einem bestimmten Kommentar von der Beobachtungsliste und anderen Seiten, die Revisionen auflisten
  • Immer den Namen des aktuellen Abschnitts sehen und mit einem Klick durch die Seitenteile navigieren
  • Suche nach Kommentaren und Abschnitten im Archiv

Das Skript lässt den Benutzer vergessen:

  • die Notwendigkeit, den Code nach einem Platz für einen Kommentar zu durchsuchen, Doppelpunkte zu zählen, Tilden und andere Markierungen zu tippen;
  • Bearbeitungskonflikte;
  • das Lesen von Gesprächsseiten durch Diffs;
  • die Notwendigkeit, die Seite komplett neu zu laden und mit den Augen nach neuen Kommentaren zu suchen, oder sogar die Beobachtungsliste zu überprüfen;
  • die Notwendigkeit, UTC-Daten in Ortszeit umzurechnen.

Installation

Um das Skript für alle Wikimedia-Wikis zu installieren, füge es zu global.js auf Meta hinzu:

mw.loader.load('https://commons.wikimedia.org/w/index.php?title=User:Jack_who_built_the_house/convenientDiscussions.js&action=raw&ctype=text/javascript');

Um das Skript in einem bestimmten Wiki zu installieren, in dem es kein Gadget ist, füge denselben Code in common.js ein. Wenn das Wiki das Skript als Gadget hat, aktiviere es in den Benutzereinstellungen. Auch wenn das Skript global installiert ist, wäre es sinnvoll, das Gadget hinzuzufügen - das Skript würde in diesem Wiki schneller geladen.

Jedes Wiki hat seine eigenen Eigenheiten, die das Skript in der Konfigurationsdatei berücksichtigen kann. Diese sind für jedes Wiki individuell und werden von Freiwilligen erstellt. Wenn du dich mit JavaScript auskennst und dein Wiki keine Konfigurationsdatei hat, lies bitte § Konfiguration für ein Wiki. Eine Konfigurationsdatei für das Wiki zu haben, wird auch die Ausführung des Skripts beschleunigen.

Benutzung

 
Einstellungsdialog

Du kannst das Skript im Einstellungsdialog nach deinen Wünschen anpassen. Er ist durch Anklicken des Zahnradsymbols   verfügbar, das sich im Abschnitt "CD" der Beobachtungsliste und unter jedem Kommentarformular befindet.

Die Hotkeys können gefunden werden, wenn du auf die Schaltfläche "?" unter einem Kommentarformular klickst oder den Mauszeiger über die Schaltflächen des Navigationspanels bewegst.

Kommentartypen

  • Neuer Kommentar (ein Kommentar gilt als neu, wenn die Seite innerhalb von 15 Minuten seit dem ersten Laden des Kommentars geladen wurde)
  • Eigener Kommentar
  • Zielkommentar (wurde durch einen Link geöffnet oder wurde angesprungen)
  • Gelöschter Kommentar

Navigationsleiste

 

Häufig gestellte Fragen

Das Skript funktioniert nicht auf einer Seite, auf der es funktionieren sollte / funktioniert auf einer Seite, auf der es nicht funktionieren sollte. Wie kann man das beheben?

Das Skript verwendet eine Reihe von Faktoren, um festzustellen, ob es eine bestimmte Seite verarbeiten soll, wie z.B. das Vorhandensein der Registerkarte "Thema hinzufügen" und der Konfigurationswert wgExtraSignatureNamespaces. Der einfachste Weg, eine Seite zu bearbeiten oder nicht zu bearbeiten, besteht darin, in der Fußzeile der Seite auf "Convenient Discussions auf dieser Seite einmal ausführen" zu klicken. Das funktioniert aber nur einmal. Wende dich an den Benutzer, der die Konfigurationsdatei deines Wikis verwaltet, oder deine eigene Konfigurationsdatei gemäß den Anweisungen unten. In dieser Datei sollten reguläre Ausdrücke, die mit Seitennamen übereinstimmen, zu den Werten pageWhitelist / pageBlacklist hinzugefügt bzw. aus ihnen entfernt werden. Ein schlechterer Weg, damit umzugehen, ist es, ein Element mit class="cd-talkPage" oder class="cd-notTalkPage" in den Quellcode der Seite einzufügen. In diesem Fall wird die Seite auf den Log-Seiten (Watchlist, History-Seiten usw.) immer noch falsch klassifiziert.

Was bedeutet "(-)" nach dem Kommentartext in einer Bearbeitungszusammenfassung?

Es bedeutet, dass der gesamte Text des Kommentars in der Bearbeitungszusammenfassung angezeigt wird und dass es keinen weiteren Text in dem Kommentar gibt als den, der angezeigt wird. Es macht also keinen Sinn, die Seite zu öffnen, wenn du nur den Inhalt dieser Bearbeitung sehen willst. Das ist eine Schreibweise, die in einigen alten Internetforen verwendet wurde.

Das Kommentarmenü (Antworten/Bearbeiten/Danken/...) überschneidet sich mit einem Benutzerlink, und ich kann ihn nicht anklicken.

Machen einen langen Klick/Tipp oder einen Rechtsklick auf den Block; er verschwindet dann.

Wie kann man Einstellungen für ein Wiki vornehmen, nicht für alle Wikis?

Verwende var cdLocalSettingName = value; in deinen common.js auf diesem Wiki. Du kannst die Namen der Einstellungen hier erhalten (der erste Buchstabe sollte in Großbuchstaben sein, zum Beispiel autopreviewcdLocalAutopreview).

Ich möchte, dass nach einer Benutzererwähnung wie in der Vorlage {{Ping}} eingefügt wird.

Halte Ctrl gedrückt und wählen Sie den Namen, den du erwähnen möchten. Du kannst auch das Erwähnungssymbol drücken, während du Ctrl gedrückt haltest - wenn du auf einen Kommentar antwortest, wird eine Erwähnung des Autors des Zielkommentars mit am Anfang Ihres Kommentars erscheinen.

Daten

Hier erfährst du, was das Skript speichert, warum, wie und wie dudie Daten löschen kannst. Beachten , dass du alle mit dem Skript verbundenen Daten mit einem Klick löschen kannst, indem du die Skripteinstellungen öffnest und auf der Registerkarte "Datenentfernung" auf die Schaltfläche "Alle Skriptdaten entfernen" klickst. Beachten, dass die Einstellungen (bis auf einige wenige) global sind, während Besuche und beobachtete Abschnitte für jedes Wiki einzeln gespeichert werden.

Was Warum Wie Wie löschen[1]
Einstellungen Damit das Skript an die Vorlieben des Benutzers angepasst werden kann. Auf den Wikimedia-Servern als eine Benutzeroption namens userjs-convenientDiscussions-settings.

Globale Einstellungen:

new mw.Api().postWithEditToken({
  action: 'globalpreferences',
  optionname: 'userjs-convenientDiscussions-settings',
});

Lokale Einstellungen:

new mw.Api().saveOption('userjs-convenientDiscussions-localSettings', null);
Letzte Gesprächsseitenbesuche Um neue Kommentare auf Talk-Seiten zu erkennen. In komprimiert Form, auf den Wikimedia-Servern als Benutzeroption namens userjs-convenientDiscussions-visits.[2]
new mw.Api().saveOption('userjs-convenientDiscussions-visits', null);
Beobachtete Abschnitte (Nur wenn in den Einstellungen anstelle des Standard-Themenabonnements aktiviert). Zum Anzeigen von Benachrichtigungen und Hervorheben von Kommentaren auf Seiten, die Überarbeitungen auflisten: die Beobachtungsliste, die Seite mit den letzten Änderungen, die Seiten mit der Historie und die Seiten mit Benutzerbeiträgen. In komprimierter Form, auf den Wikimedia-Servern als Benutzeroption namens userjs-convenientDiscussions-watchedSections.[2]

über das Dialogfeld "Liste der überwachten Abschnitte bearbeiten", das über die Überwachungsliste zugänglich ist, oder

new mw.Api().saveOption('userjs-convenientDiscussions-watchedSections', null);
Inhalt der Formulare für nicht abgeschickte Kommentare Zur Wiederherstellung von Kommentarentwürfen nach Neuladen der Seite, Abstürzen des Browsers, versehentlichen Sprüngen zu einer anderen Seite usw. Nicht länger als 60 Tage, im lokalen Speicher des Browsers [1].
localStorage.removeItem('convenientDiscussions-commentForms');
Bearbeitungen über CD bedankt In der Schnittstelle anzeigen, dass ein Kommentar bereits bedankt wurde. Nicht länger als 60 Tage, im lokalen Speicher des Browsers [$docs-localStorage].
localStorage.removeItem('convenientDiscussions-thanks');
Letzte Änderungen Wenn ein Kommentar aktualisiert wird, wird seine neue Version manchmal sofort wiedergegeben. Wenn der Benutzer die Aktualisierung gesehen hat, wird diese Tatsache gespeichert, so dass es keine Benachrichtigung gibt, wenn der Benutzer dich das nächste Mal sieht. Nicht länger als 60 Tage, im lokalen Speicher des Browsers [$docs-localStorage].
localStorage.removeItem('convenientDiscussions-seenRenderedChanges');
  1. ^ Um den Code in der Spalte "Wie löscht man?" auszuführen, öffnen die Entwicklertools des Browsers (in den meisten Browsern durch Drücken von F12), wechsele zur Registerkarte "Konsole", fügen den Code in das Eingabefeld ein und drücke  Enter.
  2. ^ In der russischen Wikipedia verwendet den Optionsnamen aus historischen Gründen cd statt convenientDiscussions, und userjs-cd-watchedTopics wird für die Option watched sections verwendet

Beachten, dass andere Skripte, die du auf Wikiseiten verwendest, sowie seitenweite Skripte ebenfalls Zugriff auf diese Daten haben.

Rückmeldung

Es ist am besten, Fehlerberichte und Vorschläge auf Phabricator unter [the "convenient-discussions" tag] zu posten. Wenn du dort keinen Account hst und auch keinen anlegen willst, posten es auf der talk page (bitte ping $jack-link-commons).

Danksagung

Convenient Discussions wurde 2018 als Benutzerskript der russischen Wikipedia gestartet. Es wird von Jack who built the house entwickelt, bereichert durch die Beiträge und das Feedback der globalen Wikimedia-Tech-Community und der Nutzer. Es leiht sich auch den Code zum Parsen von Zeitstempeln in verschiedenen Formaten von Matma Rex und nutzt Lösungen und Ideen der Wikimedia-Technik- und Design-Teams.

Konfigurieren für ein Wiki

 
Struktur des Projekts

Das Schema zum Laden des Skripts in einem Wiki ist das folgende: Es gibt die Hauptskriptdatei auf Commons und eine Konfigurationsdatei auf dem Wiki (wenn jemand sie erstellt hat). Die Konfigurationsdatei kann ein Gadget oder ein Benutzerskript sein (ein Gadget wird schneller geladen). Die Konfigurationsdatei fordert die Hauptskriptdatei an, wenn sie noch nicht geladen ist. Umgekehrt, wenn die Hauptdatei zuerst geladen wird, fordert sie die Konfigurationsdatei an, wenn die URL der Konfigurationsdatei angegeben ist in ihr. Es macht also keinen Unterschied, welche Datei zuerst geladen wird.

Um das Skript für ein Wiki zu konfigurieren, kannst du den Konfigurationsgenerator wie unten beschrieben verwenden und ihn dann mit den von Ihnen gewünschten Konfigurationswerten ergänzen. Wenn du willst, dass die Konfigurationsdatei geladen wird, wenn Benutzer das Skript von Commons laden, solltest du den repository owner kontaktieren. Wenn es sich als sicher erweist, wird er die URL der Konfiguration zu config/urls.json hinzufügen (Du kannst auch eine Pull-Anfrage stellen).

Um eine Konfiguration zu erzeugen, führe das Generator-Skript in der Konsole deines Browsers auf einer beliebigen Seite des Wikis aus, für die du die Konfiguration wünschst. Du kannst dies tun, indem du

mw.loader.load('https://commons.wikimedia.org/w/index.php?title=User:Jack_who_built_the_house/convenientDiscussions-generateBasicConfig.js&action=raw&ctype=text/javascript');

in der Konsole ausführst. Das Ergebnis wird ein Konfigurationsobjekt mit Werten enthalten, die automatisch abgerufen werden können (Systemmeldungen, einige Seiteninformationen, Vorlagennamen), die in den universellen Wrapping-Code verpackt sind. Du solltest dann eine Konfigurationsdatei mit diesem Inhalt erstellen.

Der sinnvolle Teil der Konfiguration ist im Objekt convenientDiscussions.config enthalten. Seine möglichen Eigenschaften sind hier mit Standardwerten dokumentiert, alphabetisch geordnet. Der Quellcode dieser Dokumentation hat sie in einer logischeren Reihenfolge.

Es wird empfohlen, nur die Eigenschaften beizubehalten, die sich von den Standardeigenschaften unterscheiden.

Du kannst auch zusätzliche Anleitungen (z. B. Haken) unterhalb des Objekts hinzufügen.

Beispiele

Wie kann ich die "Antworten"-Schaltflächen deaktivieren?

Um zu verhindern, dass die "Antworten"-Schaltflächen und der Rest des Kommentar-Layouts in bestimmten Vorlagen, die auf Talk-Seiten verwendet werden (z.B. in der Vorlage "Verschobene Diskussion" nach der Signatur des Verfassers), angezeigt werden, fügen die Klasse mw-notalk zu diesen Vorlagen hinzu.

Um zu verhindern, dass die "Antworten"-Buttons in geschlossenen Diskussionen angezeigt werden, fügen die Klasse mw-archivedtalk zur Vorlage hinzu.

Debugging mit Node.js und Git

Wenn du deine Konfiguration genauer in den Entwicklungswerkzeugen des Browsers debuggen willst und du mit Node. js und Git vertraut bist und diese installiert hast, klone das Repository des Skripts, führen npm install im Verzeichnis des Skripts aus, um die Abhängigkeiten zu installieren, erstelle eine .js-Datei im Ordner config, die nach dem Muster project_code[-language_code].js benannt ist (z. B. w-en.js, wikt-de.js, mw.js), und fügen den folgenden Code darin ein:

export default {
  // List of properties
};

// Any additional code, e.g. hooks

Dann müssst du den Code wie oben beschrieben einfügen. Nachdem die Konfiguration fertig ist, müsse eine tatsächliche Konfigurationsdatei erstellen, und die in Ihr Wiki stellen. Führen dazu npm run configs aus. Die resultierende Datei wird dist/convenientDiscussions-config/filename heißen.

Teste deine Konfigurationsdatei, indem du npm run single -- project=project_code lang=language_code ausführst. Eine Datei mit dem Namen convenientDiscussions-single-project_code[-language_code].js wird im Ordner dist erstellt (und bei Codeänderungen aktualisiert). Laden sie mit mw.loader.load('http://localhost:9000/filename') in das Wiki.

Es ist am besten, wenn du einen Pull-Request stellst, um deine Konfiguration in das CD-Repository aufzunehmen. Wenn sich etwas in der Skriptumgebung ändert, das sich auf Ihre Konfigurationsdatei auswirkt (z. B. das Format einer Eigenschaft ändert sich oder ein Standardwert, auf dem Ihr Wert basiert, wird aktualisiert), können andere Personen, darunter der Betreuer des Skripts, dies feststellen und dich informieren und/oder selbst Änderungen vornehmen.

Entwicklung

  • GitHub repository wird zum Speichern von Code verwendet. GitHub Actions wird zum Erstellen und Bereitstellen der resultierenden Dateien in Wikis sowie von Dokumenten in Toolforge verwendet.
  • Phabricator tag wird verwendet, um die Bemühungen zu koordinieren. (Fehlerberichte und Vorschläge dort posten, nicht auf GitHub.)
  • Toolforge hat automatisch generierte Code-Dokumentation.
  • Translatewiki hat Lokalisierungsstrings. Bitte schlage Verbesserungen für den englischen Quelltext durch einen Pull-Request an [$github-de en.json] vor.

Deine Beiträge sind willkommen! Du kannst entweder das Skript selbst verbessern oder Plugins dafür schreiben. Einige Hinweise:

  • Das globale Objekt des Skripts ist convenientDiscussions (die Module verwenden den Alias cd).
  • convenientDiscussions.s() ist ein Analogon zu mw.msg() für die Sprachstrings des Skripts. convenientDiscussions.sParse() ist ein Analogon zu mw.message(...).parse(). Bitte stelle sicher, dass alle Strings, deren Roh-HTML in die Seite eingefügt wird, convenientDiscussions.sParse() verwenden, um zu verhindern, dass XSS Schwachstellen entstehen. (Sämtlicher Code aus nicht vertrauenswürdigen Quellen wird in früheren Stadien bereinigt, aber eine doppelte Überprüfung kann nicht schaden).
  • "Events" im linken Feld der Dokumentation entsprechen den von mw.hook verwendeten Namen. Um z.B. einen Handler an das Ereignis commentFormCreated anzuhängen, benötigst du den Code mw.hook('convenientDiscussions.commentFormCreated').add(handler);.
  • Um auf einer Seite die Namen der Nachrichten statt der Nachrichten selbst zu sehen, füge den Parameter uselang=qqx an das Ende der URL an (genau wie bei MediaWiki).
  • Wenn ein Plugin schreibst und eine interne Methode benötigen, die über das globale Objekt öffentlich verfügbar sein soll, kontaktieren den script's maintainer (oder stellen einfach einen entsprechenden Pull Request).
  • Bisher gibt es nur sehr wenige automatische Tests (obwohl es toll wäre, mehr zu haben); die meisten Tests sollten manuell durchgeführt werden. Einige allgemeine Testfälle für die Erkennung von Kommentaren und das Hinzufügen/Bearbeiten von Kommentaren sind unter User talk:Jack who built the house/CD test cases gesammelt.

Bauen

Verwende:

  • npm run start, um das Skript von http://localhost:9000/convenientDiscussions.dev.js auszuliefern und bei Aktualisierungen automatisch neu zu erstellen. Die Wiki-Konfiguration und die Übersetzung werden weiterhin aus dem Web geladen.
  • npm run single -- project=project_code lang=language_code, um das Skript als einzelne Datei bereitzustellen. Nützlich zum Debuggen von Konfiguration und Übersetzung.
  • npm run build, um die Hauptdatei, die Source-Maps, die Projektkonfiguration-Dateien, die Übersetzungsdateien und die Lizenzdatei zu erstellen. Verwende --test, um die Dateien mit dem Postfix -test zu erstellen.
  • npm run docs, um Dokumentation aus JSDoc-Kommentaren zu erzeugen.
  • npm run configs um Wikikonfiguration-Dateien zu erzeugen. Verwende --test, um die Dateien mit dem Postfix -test zu erzeugen.
  • npm run deploy, um die erstellten Dateien (mit Ausnahme der Wiki-Konfigurationen) wie in config.json5 konfiguriert im Wiki zu verteilen. Verwende --test, um die Testversionen bereitzustellen.

Siehe auch