Sobre o projeto

Slate é um framework para construir editores de rich text na web, posicionado como uma alternativa a editores como Medium, Dropbox Paper ou Google Docs. Ele é implementado como uma camada plugável sobre contenteditable, construído em React, e foi inspirado por Draft.js, ProseMirror e Quill. Princípios-chave descritos no README: - Plugins de primeira classe: plugins são centrais, para que a experiência de edição possa ser personalizada sem lutar contra as suposições da biblioteca. - Núcleo sem esquema: o núcleo faz poucas suposições sobre o esquema do documento, deixando espaço para necessidades específicas de domínio, como comentários, incorporações ou tabelas. - Modelo de documento aninhado: documentos são árvores recursivas como o DOM, permitindo componentes complexos como tabelas ou citações em bloco aninhadas, ao mesmo tempo que ainda permitem estruturas planas simples. - Paralelo ao DOM: o modelo de dados usa árvores aninhadas, seleções e intervalos, e expõe manipuladores de eventos padrão. - Comandos intuitivos: documentos são editados por meio de comandos de alto nível, destinados a serem legíveis e expressivos. - Modelo de dados pronto para colaboração: as operações são projetadas para que a edição colaborativa possa ser adicionada posteriormente. - Limites claros do núcleo: a arquitetura plugin-first e um núcleo sem esquema separam o comportamento central do comportamento personalizado. O projeto é um monorepo gerenciado com Lerna e inclui vários pacotes: slate (lógica central do modelo de dados), slate-history (plugin de histórico de desfazer/refazer), slate-hyperscript (uma ferramenta de hiperscript para escrever documentos Slate em JSX) e slate-react (componentes React para renderizar editores). O README observa que o Slate está atualmente em beta: a API central é utilizável, mas casos de uso avançados podem exigir pull requests, algumas APIs não estão finalizadas e podem mudar, e não há cronograma de lançamento da versão 1.0. Ele também é orientado por contribuidores, em vez de apoiado por uma grande empresa, então melhorias e correções dependem de contribuições voluntárias. A documentação inclui tutoriais, conceitos, perguntas frequentes e recursos, além de traduções da comunidade para o chinês. Uma demonstração ao vivo e um conjunto de exemplos estão vinculados, cobrindo texto simples, rich text, visualização de Markdown, inlines, imagens, barra de ferramentas flutuante, tabelas, HTML colado e menções. O projeto é licenciado sob MIT.