Suggerimento funzionalità per Rich Text Editor: comando `/` (stile Notion)

Potrebbe essere solo un’idea passeggera, ma potrebbe essere utile poiché è diventato uno standard UX/UI in molte app, come Notion.

Che ne dici di aggiungere una funzionalità di comando / con un menu contestuale quando un utente si trova su una riga nuova/vuota per offrire la creazione di elementi specifici come immagini, collegamenti, GIF, sondaggi, ecc.?

Sarebbe fantastico se i plugin e i componenti del tema potessero “accedervi”.

Qualche pensiero? Ha senso?

2 Mi Piace

Credo che sia nel nostro radar, ma più richieste riceviamo dalla community, meglio è!

2 Mi Piace

Sarebbe possibile tramite un TC/plugin, o una PR/modifica diretta nel codebase? Perché guardando qui, non sembra facilmente modificabile usando un TC/plugin dato che necessita anche di un file lib/?

1 Mi Piace

Non sono sicuramente la persona giusta a cui chiedere, ma dubito che qualsiasi cosa che tocchi il composer sia facilmente/affatto possibile tramite un TC. Rimando al nostro esperto interno @renato :slight_smile:

2 Mi Piace

L’editor avanzato è altamente personalizzabile tramite estensioni registrate, che seguono il tipo RichEditorExtension. Ogni nodo/segno/plugin ProseMirror personalizzato, ecc. passa attraverso una chiamata registerRichEditorExtension.

Se si dovesse creare una funzionalità di comando slash solo per l’editor avanzato, quella sarebbe la strada da percorrere, anche se secondo me abbiamo già la nostra implementazione di autocompletamento che è molto simile a ciò che vogliamo per un comando slash, e il fatto che sarebbe anche possibile supportare facilmente la modalità Markdown è molto interessante.

Gli autocompletamenti, essendo una funzionalità mirata a funzionare su entrambi gli editor, non solo sull’editor avanzato, si trovano sopra le personalizzazioni specifiche dell’editor avanzato. Emoji, menzioni e hashtag funzionano allo stesso modo in entrambe le modalità dell’editor.

Vengono applicati in setupEditor e vengono distrutti quando anche quell’istanza dell’editor viene distrutta (ad esempio, quando si passa da una modalità all’altra):

Sì, è possibile realizzarlo tramite un componente tematico o un plugin (anche se passare attraverso setupEditor/distruttore può essere attualmente un po’ macchinoso), ma quest’area è dove idealmente vorremmo consentire ulteriori personalizzazioni – nuovi componenti tematici o plugin dovrebbero essere in grado di aggiungere più opzioni al comando slash, con le loro specifiche regole di filtraggio –, quindi un API di plugin fornito dal core è l’ideale.

1 Mi Piace