Funktionsvorschlag für Rich Text Editor: `/` Slash Command (a la Notion)

Das mag jetzt nur eine Geistesblitz sein, aber es könnte nützlich sein, da es in vielen Apps, wie z. B. Notion, zum UX/UI-Standard geworden ist.

Wie wäre es mit einer Funktion für Befehle mit /, die ein Kontextmenü anzeigt, wenn sich ein Benutzer in einer neuen/leeren Zeile befindet, um das Erstellen spezifischer Elemente wie Bilder, Links, GIFs, Umfragen usw. anzubieten?

Es wäre großartig, wenn Plugins und Theme-Komponenten darauf „zugreifen“ könnten.

Irgendwelche Gedanken? Macht das Sinn?

2 „Gefällt mir“

Ich glaube, es steht auf unserer Liste, aber je mehr Anfragen wir von der Community erhalten, desto besser!

2 „Gefällt mir“

Wäre dies über ein TC/Plugin oder einen direkten PR/eine Änderung im Code möglich? Denn wenn man sich dies ansieht, scheint es nicht einfach mit einem TC/Plugin modifizierbar zu sein, da es auch eine lib/ Datei benötigt?

1 „Gefällt mir“

Ich bin definitiv nicht die richtige Person, um das zu fragen, aber ich bezweifle, dass alles, was den Komponisten betrifft, über ein TC einfach/überhaupt möglich ist. Ich überlasse das unserem internen Experten @renato :slight_smile:

2 „Gefällt mir“

Der Rich-Editor-Composer ist über registrierte Erweiterungen sehr anpassbar, was dem RichEditorExtension Typ folgt. Jeder benutzerdefinierte ProseMirror-Knoten/Mark/Plugin/etc. durchläuft einen registerRichEditorExtension-Aufruf.

Wenn eine Slash-Command-Funktion nur für den Rich-Editor erstellt werden sollte, wäre dies der richtige Weg, obwohl meiner Meinung nach unsere Autocomplete-Implementierung bereits sehr ähnlich zu dem ist, was wir für einen Slash-Command wollen, und die Tatsache, dass auch der Markdown-Modus einfach unterstützt werden könnte, ist sehr interessant.

Autocompletes, die eine Funktion sind, die in beiden Editoren funktionieren soll, nicht nur im Rich-Editor, leben oberhalb der Rich-Editor-spezifischen Anpassungen. Emojis, Erwähnungen und Hashtags funktionieren in beiden Editor-Modi auf die gleiche Weise.

Sie werden in setupEditor angewendet und zerstört, wenn diese Editor-Instanz ebenfalls zerstört wird (z. B. beim Umschalten zwischen Modi):

Ja, es ist möglich, dies über eine Theme-Komponente oder ein Plugin zu erstellen (obwohl die Durchlaufung von setupEditor/Destruktor derzeit umständlich sein kann), aber dies ist ein Bereich, in dem wir idealerweise weitere Anpassungen zulassen sollten – neue Theme-Komponenten oder Plugins sollten in der Lage sein, weitere Optionen für den Slash-Command mit ihren spezifischen Filterregeln hinzuzufügen –, sodass eine von der Core bereitgestellte Plugin-API ideal ist.

1 „Gefällt mir“