← Gesamte Dokumentation

Rechtschreibprüfung

Aktiviert die browsereigene Rechtschreibprüfung im Bearbeitungsbereich und stellt Ihnen einen Rechtschreibprüfungsbefehl zur Verfügung, mit dem Sie ein Überprüfungsfenster öffnen können, das von Ihrem eigenen Rechtschreibdienst gespeist wird. Der Editor liefert keine Wörterbücher mit: Ohne einen Dienst erfolgt die Überprüfung auf das, was der Browser und das Betriebssystem des Benutzers in den von ihm installierten Sprachen bereitstellen.

Das Rechtschreibfeld über dem Editor: 3 Probleme gefunden, Auflistung von Teh mit den Vorschlägen the und tech, jumpd mit jumped und Jumps und vorher mit before und befog sowie eine Schaltfläche „Fertig“.
Das Prüfpanel mit angeschlossenem Resolver. Jeder Vorschlag ist eine Schaltfläche, die das Wort ersetzt.
Eine Textzeile im Editor mit roten Wellenunterstreichungen unter „Teh“, „jumpd“, „befor“, „Anothr“ und „setense“.
Ohne Resolver: Der browsereigene Prüfer unterstreicht Rechtschreibfehler, während der Benutzer sie eingibt (Chromium unter Windows).

Schalten Sie es ein

Die Funktion ist diespellcheck.jsPlugin (auch inplugins/all_plugins.js). Der Knopf istspellcheck ( "Spell Check"). Es ist in derfullSymbolleiste und in der"more"Panel der Standardsymbolleiste, und im Slash-Menü wird es als aufgeführt"Spell check". Um es in Ihre eigene Symbolleiste einzufügen, fügen Sie hinzuspellcheckzur Symbolleistenzeichenfolge.

Wenn das Plugin geladen ist, ist der native Checker aktiviert und es ist nichts anderes erforderlich. Um das Überprüfungsgremium zu erhalten, geben Sie ihm einen Resolver: eine Funktion, die den Klartext des Dokuments empfängt und die Probleme oder eine Zusage davon zurückgibt.

// A stand-in for your spelling service: returns [{ word, offset, length, suggestions }].
var dictionary = { teh: ["the", "tech"], jumpd: ["jumped", "jumps"], befor: ["before", "befog"] };
var editor = new RichTextEditor("#editor", {
  toolbar: "full",
  spellCheckResolver: function (text) {
    var issues = [];
    text.replace(/[A-Za-z]+/g, function (w, offset) {
      var s = dictionary[w.toLowerCase()];
      if (s) issues.push({ word: w, offset: offset, length: w.length, suggestions: s });
    });
    return Promise.resolve(issues);
  }
});

In einer realen Anwendung ruft der Resolver Ihren Server auf, der einen Prüfer wie Hunspell oder LanguageTool ausführt und seine Antwort dieser Form zuordnet:

spellCheckResolver: function (text) {
  return fetch("/spell", { method: "POST", body: text }).then(function (r) { return r.json(); });
}

Optionen

OptionStandardWas es bewirkt
spellCheckEnabledtrueSetsspellcheck="true"oder"false"im Bearbeitungsbereich, wenn der Editor startet.
spellchecktrueDer eigene Schalter des Kerneditors für dasselbe Attribut. Das Attribut ist nur dann "true", wenn beide Optionen true sind.
spellCheckResolvernullfunction (text) gibt ein Array von { word, offset, length, suggestions } oder ein Versprechen davon zurück. Ohne diese Angabe aktiviert der Befehl nur den nativen Prüfer.
text_spellcheck, text_spellchecktitle, text_spellchecknative, text_spellcheckclean, text_sp_*EnglischSchaltflächenbeschriftung, Paneltitel und Meldungen. Die Sprachpakete legen sie fest.

Verwenden

  • Kein Resolver. Der Befehl setzt spellcheck="true" auf den Bearbeitungsbereich, fokussiert ihn und zeigt unten auf der Seite eine kurze Meldung an: "Browser spell-check is on — misspellings are underlined as you type." Dadurch wird auch der native Prüfer wieder aktiviert, wenn Sie mit spellCheckEnabled: false begonnen haben. Korrekturen werden über das browsereigene Kontextmenü vorgenommen.
  • Mit einem Resolver. Der Befehl sendet innerText des Dokuments an den Resolver und öffnet das Rechtschreibfenster. Jede Ausgabe zeigt das Wort und bis zu sechs Vorschläge. Wenn Sie auf einen Vorschlag klicken, wird das Wort ersetzt und die Zeile ausgegraut. "No spelling issues found." wird angezeigt, wenn die Liste leer ist, und "Nothing to check.", wenn das Dokument leer ist.
  • Ein Resolver, der ablehnt, zeigt "Spell-check service error." an; eine, die länger als 12 Sekunden dauert, zeigt "Spell-check timed out." an; einer, der wirft, zeigt "Spell-check error." .

Wissenswertes

  • Ersetzung erfolgt nach Wort, nicht nach Position. Ein Vorschlag ersetzt die erste Ganzwortübereinstimmung von word im Dokument (Text innerhalb von code und pre wird übersprungen). offset und length werden nicht verwendet. Wenn also ein Wort zweimal falsch geschrieben wird, korrigiert jeder Klick das nächste Vorkommen von oben.
  • Ersetzungen sind keine Schritte zum Rückgängigmachen. In 2.6.12 wird durch „Rückgängig“ nach dem Klicken auf einen Vorschlag das alte Wort nicht wiederhergestellt.
  • Sprachen. Das Plugin hat keine Spracheinstellung. Der native Prüfer verwendet die Wörterbücher des Browsers und des Betriebssystems des Benutzers; Bei einem Resolver ist die Sprache diejenige, die Ihr Dienst prüft. Übergeben Sie es von Ihrer Seite, zum Beispiel fetch("/spell?lang=fr", …).
  • Ihr Text geht an Ihren Dienst. Der gesamte Klartext des Dokuments wird bei jeder Prüfung an den Resolver übergeben. Vom Plugin selbst wird nichts irgendwohin gesendet.
  • Dem gespeicherten HTML wird nichts hinzugefügt. Das Attribut spellcheck befindet sich im Bearbeitungsbereich, nicht im Inhalt.

Verwandt: Demo zur Rechtschreibprüfung, Schrägstrichbefehle.