3 votes

Comment mettre en œuvre un éditeur de texte riche avec pagination ?

Dans le cadre d'un projet plus vaste, je vais mettre en place un éditeur de texte riche avec pagination.

En raison des mauvaises expériences précédentes avec content-editable, je préférerais que l'éditeur utilise une approche avec un modèle de document (par ex, prose-miroir et ardoise ).

L'éditeur ne comportera qu'une poignée d'éléments que l'utilisateur pourra insérer, de sorte que la quantité de fonctionnalités n'est pas très importante.

Le problème difficile ici est la pagination, qui malheureusement n'est pas prise en charge par les éditeurs de qualité que j'ai examinés.

Je suis convaincu que je suis capable d'étendre l'un des éditeurs existants avec un support de pagination, mais je suis également conscient que cela nécessitera beaucoup de travail, donc je veux vraiment prendre les bonnes décisions dès le début.

Compte tenu des informations fournies, quelle approche choisiriez-vous pour mettre en œuvre un éditeur de texte riche avec pagination ?

Les détails techniques et les récits d'expériences passées d'extension/utilisation de divers éditeurs sont plus que bienvenus.

2voto

Mike Burton Points 2546

Nous avons fait de la pagination avec ProseMirror. C'est un casse-tête, mais il y a de nombreuses façons de le faire fonctionner dans le modèle - en modélisant directement les pages, en utilisant des marques pour indiquer les limites des pages, etc. - tant que vous êtes à l'aise pour écrire des vues personnalisées pour supporter votre représentation choisie.

Les principales décisions portent sur

  1. Dans quelle mesure votre pagination doit-elle être interactive ?
  2. Votre mise en forme est-elle fluide ?

Si vous êtes d'accord avec une pagination qui est "éventuellement" correcte, et si vous avez des règles qui fixent vos caractères par ligne (essentiellement un pseudo-espacement), vous serez bien en PM. Si vous avez besoin que votre pagination soit correcte MAINTENANT et qu'elle prenne en charge diverses polices de caractères, vous devrez compter sur la capacité du navigateur à mesurer la taille de vos éléments, ce qui signifie beaucoup de rendus "fantômes".

Vous devez également savoir que ProseMirror est un moteur de document relativement rapide, mais qu'il a du mal à faire face à la charge de travail dans le cas de longs documents pour lesquels la pagination dans l'éditeur est vraiment importante. J'espère que le noyau peut être réécrit dans quelque chose comme WebAssembly, ce qui devrait offrir une accélération substantielle pour les calculs de bas niveau que ProseMirror effectue pour ce genre de choses.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X