49 votes

Un éditeur de texte riche WYSIWYG qui n'utilise pas le HTML (contenteditable ou designMode), comme le (nouveau) Google Docs ?

Outre le nouveau Google Docs, tous les autres éditeurs de texte enrichi WYSIWYG basés sur le Web (ckeditor, tinymce, l'ancien Google Docs) que j'ai vus sont basés sur contenteditable ou designMode. Personnellement, je déteste utiliser ces éditeurs. Il suffit de peu de formatage ou de copier/coller pour que l'expérience entière se transforme en un exercice de frustration. Les retours se mettent soudain à être en double interligne, un formatage involontaire est introduit par le collage à partir d'autres sources HTML, les annulations/rétablissements sont complètement cassés, le formatage devient atrocement difficile à contrôler, etc.

Je pense que c'est l'une des raisons pour lesquelles Google Docs a introduit son propre moteur de formatage non-HTML, beaucoup plus limité. Existe-t-il une bibliothèque open-source qui propose quelque chose de similaire ? Merci d'avance.

18voto

peteorpeter Points 2322

Vous pourriez commencer par le Éditeur d'as (anciennement Bespin et Skywriter). Il est destiné à l'édition de code, il lui manque donc des fonctionnalités de formatage et autres, mais vous pouvez y trouver un noyau de fonctionnalités utiles sur lequel baser un éditeur de texte riche.

En action : http://ajaxorg.github.com/ace/build/editor.html

Code : https://github.com/ajaxorg/ace

Mise à jour : Comme @theazureshadow le souligne, l'éditeur actuel n'utilise pas canvas comme je l'ai signalé à l'origine. Bespin a utilisé canvas avant de fusionner avec Ace, qui utilise le DOM. En jetant un bref coup d'œil sous le capot, il ne semble pas qu'ils utilisent contentEditable o designMode mais (Il y a un <textarea /> qui suit le curseur et des spans et divs pour afficher le texte - un tas de JS personnalisés pour relier le tout, je pense).

De ace.ajax.org > Histoire :

Bespin a été créé au sein de Mozilla Labs et était basé sur le programme <canvas> alors que Ace est le composant éditeur de l'EDI Cloud9 et utilise le DOM pour le rendu.

2voto

coreyward Points 26109

Vous avez raison : c'est beaucoup plus agréable.

Existe-t-il une bibliothèque à code source ouvert qui fournit [un éditeur de documents qui n'utilise pas le navigateur pour gérer le texte modifiable, mais qui utilise une surface d'édition et un moteur de mise en page personnalisés, entièrement en JavaScript].

C'est douteux.

Tout d'abord, l'éditeur est surnommé "Kix". Ce n'est pas du non-HTML, mais il n'utilise pas contentEditable parce que c'est nul pour ce qu'ils font, comme vous le mentionnez. Ce qu'il fait est délicat et encombrant à faire correctement, et je suis sûr que cela leur a demandé beaucoup d'efforts pour le créer.

Cela dit, pourquoi Google ouvrirait-il le code source de Kix ? Cela compromettrait ses efforts pour devenir votre centre de documentation, et cela signifierait qu'il devrait faire un tas de travail supplémentaire pour séparer Kix du reste de Google Docs d'une manière qui ne rende pas son intégration difficile. L'avantage ? Pas grand-chose, étant donné qu'il est peu probable que les projets open source parrainés par Google bénéficient d'un soutien sous la forme d'une participation des développeurs à leur amélioration.

Quant à la création d'une bibliothèque pour le faire, je doute que cela se produise en open source. Habituellement, les projets open source qui sont une entreprise significative sont sponsorisés par une université ou une entreprise, et ce n'est pas probable dans ce cas pour les raisons ci-dessus. Mais encore une fois, si un développeur en a envie, on ne sait pas où cela pourrait aller

0voto

Arne de Bruijn Points 331

Il y a HTE Malheureusement, il est lent et ne dispose pas de toutes les fonctions de sélection de base.

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