Open stephane-klein opened 11 months ago
Nom du repository : poc-svelte-yjs-form
Après lecture de ce commentaire Question about “binding” simple html input to Y.Text shared text type j'ai l'impression qu'il n'est pas possible d'activer une édition à plusieurs sur un simple champ <input..>
.
Le repos en work in progress: https://github.com/stephane-klein/poc-svelte-yjs-form
Je suis tombé sur le même problème que lui WebSocket is not defined : node_modules/lib0/websocket.js:25:23.
Il faut que je désactive le SSR dans ici https://github.com/stephane-klein/poc-svelte-yjs-form/blob/9e7bd35806244e244269bf8985766cc26880fe60/src/routes/form2/store.js
Je suis tombé sur le même problème que lui WebSocket is not defined : node_modules/lib0/websocket.js:25:23.
Il faut que je désactive le SSR dans ici https://github.com/stephane-klein/poc-svelte-yjs-form/blob/9e7bd35806244e244269bf8985766cc26880fe60/src/routes/form2/store.js
Je n'arrive pas à comprendre comment remplacer ici un []
par un {}
:thinking:.
Je rencontre la même erreur que celle décrite dans https://github.com/relm-us/svelt-yjs/issues/4
.
Suite à la lecture de https://github.com/relm-us/svelt-yjs/issues/4#issuecomment-1113205899
, je vais tester https://github.com/rodcisal/sveltekit-svelt-yjs-example
J'ai réussi à faire fonctionner https://github.com/rodcisal/sveltekit-svelt-yjs-example
et j'ai vu que l'exemple met en œuvre un objet de type map : https://github.com/rodcisal/sveltekit-svelt-yjs-example/blob/5914962b484a9cb108ecc5832cd05e790a7bc6d1/src/App.svelte#L30
J'ai une première version qui fonctionne.
Je ne sais pas si le code que j'ai produit est élégant ou non :thinking:.
Pour le moment je vais continue à utiliser webrtc, à moins que je développe une app qui est utilisé par beaucoup de clients qui éditent le même document.
Prochaine étape :
Sélection d'éditeurs pour champ <textarea>
:
Je pense que https://codemirror.net/ ne m'intéresse pas ici, parce que comme son nom l'indique,
Prosemirror me semble très bien, surtout l'exemple avec le support Markdown https://prosemirror.net/examples/markdown/
Je vais me diriger vers prosemirror.
J'ai lu https://github.com/yjs/y-prosemirror. Je cherche comment instancier prosemirror avec Svelte.
J'ai vu aussi https://github.com/TeemuKoivisto/svelte-prosemirror
Dans un premier temps, je vais essayer d'instancier prosemirror en mode "vanilla".
J'ai étudié https://tiptap.dev/ et https://github.com/ueberdosis/hocuspocus
L'équipe derrière ces projets me semble faire du très bon travail, de plus, comme je l'ai pu constater, ils semblent publier l'intégralité de leur travail sous licences MIT 🙂
Prochaine étape :
Prochaine étape :
* [ ] Convertir le résultat du champ _description_ en Markdown
Ressource : https://prosemirror.net/examples/markdown/
J'ai créé #283
Maintenant que j'ai réussi à implémenter https://github.com/stephane-klein/poc-svelte-prosemirror-markdown je vais essayer d'implémenter la même chose avec le support yjs.
Pour le moment, j'ai travaillé 10h sur cette issue.
Maintenant que j'ai réussi à implémenter https://github.com/stephane-klein/poc-svelte-prosemirror-markdown je vais essayer d'implémenter la même chose avec le support yjs.
Je dois continuer cette partie.
Précision, je souhaite implémenter une version basée sur "prosemirror vanilla", c'est à dire, ne pas utiliser https://tiptap.dev/.
Je souhaite essayer d'implémenter un formulaire qui se synchronise en temps réel. Ce formulaire doit contenir un champ titre, un champ select et un champ text multiline.
Implémentation basée sur :