Sobre el proyecto
Slate es un framework para construir editores de texto enriquecido en la web, posicionado como alternativa a editores como Medium, Dropbox Paper o Google Docs. Se implementa como una capa conectable sobre contenteditable, construido sobre React, e inspirado en Draft.js, ProseMirror y Quill.
Principios clave descritos en el README:
- Plugins de primera clase: los plugins son centrales, por lo que la experiencia de edición puede personalizarse sin luchar contra las suposiciones de la biblioteca.
- Núcleo sin esquema: el núcleo hace pocas suposiciones sobre el esquema del documento, dejando espacio para necesidades específicas de dominio como comentarios, incrustaciones o tablas.
- Modelo de documento anidado: los documentos son árboles recursivos como el DOM, lo que permite componentes complejos como tablas o citas en bloque anidadas, mientras aún permite estructuras planas simples.
- Paralelo al DOM: el modelo de datos usa árboles anidados, selecciones y rangos, y expone manejadores de eventos estándar.
- Comandos intuitivos: los documentos se editan mediante comandos de alto nivel diseñados para ser legibles y expresivos.
- Modelo de datos listo para colaboración: las operaciones están diseñadas para que la edición colaborativa pueda superponerse más adelante.
- Límites claros del núcleo: la arquitectura de plugins primero y un núcleo sin esquema separan el comportamiento central del comportamiento personalizado.
El proyecto es un monorepo gestionado con Lerna e incluye varios paquetes: slate (lógica central del modelo de datos), slate-history (plugin de historial para deshacer/rehacer), slate-hyperscript (una herramienta hyperscript para escribir documentos JSX de Slate) y slate-react (componentes React para renderizar editores).
El README señala que Slate está actualmente en beta: la API central es utilizable, pero los casos de uso avanzados pueden requerir pull requests, algunas APIs no están finalizadas y pueden cambiar, y no hay un cronograma para la versión 1.0. También está impulsado por contribuyentes en lugar de respaldado por una gran empresa, por lo que las mejoras y correcciones dependen de contribuciones voluntarias.
La documentación incluye tutoriales, conceptos, preguntas frecuentes y recursos, además de traducciones comunitarias al chino. Se enlazan una demo en vivo y un conjunto de ejemplos que cubren texto plano, texto enriquecido, vista previa de Markdown, elementos en línea, imágenes, barra de herramientas flotante, tablas, HTML pegado y menciones. El proyecto tiene licencia MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.