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.
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?
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
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.