À propos du projet
Slate est un framework permettant de créer des éditeurs de texte enrichi sur le web, positionné comme une alternative à des éditeurs tels que Medium, Dropbox Paper ou Google Docs. Il est implémenté comme une couche enfichable au-dessus de contenteditable, construit sur React, et s'inspire de Draft.js, ProseMirror et Quill.
Principes clés décrits dans le README :
- Plugins de premier ordre : les plugins sont centraux, de sorte que l'expérience d'édition peut être personnalisée sans lutter contre les hypothèses de la bibliothèque.
- Cœur sans schéma : le cœur fait peu d'hypothèses sur le schéma du document, laissant de la place pour des besoins spécifiques au domaine tels que les commentaires, les intégrations ou les tableaux.
- Modèle de document imbriqué : les documents sont des arbres récursifs comme le DOM, permettant des composants complexes tels que des tableaux ou des citations imbriquées tout en autorisant des structures plates simples.
- Parallèle au DOM : le modèle de données utilise des arbres imbriqués, des sélections et des plages, et expose des gestionnaires d'événements standard.
- Commandes intuitives : les documents sont modifiés via des commandes de haut niveau conçues pour être lisibles et expressives.
- Modèle de données prêt pour la collaboration : les opérations sont conçues pour que l'édition collaborative puisse être ajoutée ultérieurement.
- Limites claires du cœur : l'architecture axée plugins et un cœur sans schéma séparent le comportement central du comportement personnalisé.
Le projet est un monorepo géré avec Lerna et comprend plusieurs paquets : slate (logique du modèle de données central), slate-history (plugin d'historique annuler/rétablir), slate-hyperscript (un outil hyperscript pour écrire des documents Slate en JSX) et slate-react (composants React pour le rendu des éditeurs).
Le README indique que Slate est actuellement en version bêta : l'API centrale est utilisable, mais les cas d'utilisation avancés peuvent nécessiter des pull requests, certaines API ne sont pas finalisées et peuvent changer, et il n'existe pas de calendrier de sortie 1.0. Le projet est également piloté par les contributeurs plutôt que soutenu par une grande entreprise, de sorte que les améliorations et les corrections dépendent de contributions volontaires.
La documentation comprend des tutoriels, des concepts, une FAQ et des ressources, ainsi que des traductions communautaires en chinois. Une démonstration en direct et un ensemble d'exemples sont liés, couvrant le texte brut, le texte enrichi, l'aperçu Markdown, les éléments en ligne, les images, la barre d'outils flottante, les tableaux, le HTML collé et les mentions. Le projet est sous licence MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.