Sugerencia de función para Rich Text Editor: Comando `/` (al estilo Notion)

Puede que esto sea solo una idea fugaz, pero podría ser útil ya que se ha convertido en un estándar de UX/UI en muchas aplicaciones, como Notion.

¿Qué tal añadir una función de comando / con un menú contextual cuando un usuario está en una línea nueva/vacía para ofrecer la creación de elementos específicos como imágenes, enlaces, GIFs, encuestas, etc.?

Sería genial si los plugins y los componentes de temas pudieran “acceder” a eso.

¿Alguna opinión? ¿Tiene sentido?

2 Me gusta

Creo que está en nuestra lista, ¡pero cuantas más solicitudes recibamos de la comunidad, mejor!

2 Me gusta

¿Sería esto posible a través de un TC/plugin, o un PR/cambio directo en la base de código? Porque mirando esto, no parece ser fácilmente modificable usando un TC/plugin ya que también necesita un archivo lib/?

1 me gusta

Definitivamente no soy la persona adecuada para preguntar, pero dudo que algo que toque al compositor sea fácil o posible a través de un TC. Dejo esto a nuestro experto interno @renato :slight_smile:

2 Me gusta

El editor enriquecido es muy personalizable a través de extensiones registradas, que siguen el tipo RichEditorExtension. Cada nodo/marca/plugin/etc. personalizado de ProseMirror pasa por una llamada a registerRichEditorExtension.

Si se creara una función de comando de barra diagonal solo para el editor enriquecido, esa sería la forma de hacerlo, aunque en mi opinión ya tenemos nuestra implementación de autocompletado que es muy similar a lo que queremos para un comando de barra diagonal, y el hecho de que también sería posible admitir el modo Markdown fácilmente es muy interesante.

Los autocompletados, al ser una función destinada a funcionar en ambos editores, no solo en el editor enriquecido, se encuentran por encima de las personalizaciones específicas del editor enriquecido. Los emojis, las menciones y los hashtags funcionan de la misma manera en ambos modos de editor.

Se aplican en setupEditor y se destruyen cuando esa instancia del editor también se destruye (por ejemplo, al alternar entre modos):

Sí, es posible crear esto a través de un componente temático o un plugin (aunque pasar por setupEditor/destructor puede ser complicado actualmente), pero esta es un área que idealmente permitiríamos una mayor personalización – nuevos componentes temáticos o plugins deberían poder agregar más opciones al comando de barra diagonal, con sus reglas de filtrado específicas –, por lo que una API de plugin proporcionada por el núcleo es ideal.

1 me gusta