Editor de texto rico Quill v2 lançado
(quilljs.com)- O Quill 2.0 é um editor WYSIWYG gratuito e open source para a web moderna, permitindo incorporar recursos de edição de texto rico diretamente ao produto
- Com base em uma arquitetura modular e em uma API expressiva, é possível começar pelo núcleo básico e customizar o editor conforme os requisitos
- Desenvolvedores podem acessar de forma detalhada o conteúdo, as alterações e os eventos do editor, e esperar um comportamento consistente usando JSON na entrada e na saída
- Suporta navegadores modernos em desktops, tablets e celulares, com o objetivo de oferecer o mesmo comportamento e o mesmo HTML gerado em todas as plataformas
- Pode escalar de pequenos projetos a empresas Fortune 500, sendo uma boa opção para adotar um editor simples e depois expandi-lo conforme o produto cresce
Quill 2.0 e como começar
- O Quill 2.0 foi lançado, e os detalhes do release podem ser conferidos no post de anúncio separado: Quill 2.0 is released!
- Quill é um editor WYSIWYG gratuito e open source criado para a web moderna
- Repositório open source: slab/quill
- Documentação: Documentation
- O exemplo básico carrega
quill.snow.cssequill.jsa partir de um CDN e então cria o editor comnew Quill('#editor', ...)- A versão do exemplo é
quill@2.0.3 - Define
#toolbaremmodules.toolbare usasnowcomotheme
- A versão do exemplo é
- É possível testar diretamente a API no console de desenvolvedor do navegador
Customização e escopo de uso
- O Quill permite ajustar o editor às necessidades por meio de uma arquitetura modular e da API
- Documentação de módulos: modular architecture
- Documentação da API: API
- Desenvolvedores podem acessar de forma detalhada o conteúdo, as alterações e os eventos do editor com uma API simples
- Usa JSON tanto na entrada quanto na saída para oferecer um comportamento consistente e determinístico
- Suporta navegadores modernos em desktops, tablets e celulares, oferecendo o mesmo comportamento e o mesmo HTML gerado entre plataformas
- Pode ser usado tanto em pequenos projetos quanto em empresas Fortune 500, começando pelo Quill core e customizando ou adicionando extensões conforme necessário
- O número de GitHub Stars exibido é 47.204
1 comentários
Comentários no Hacker News
Em um emprego anterior, criei um sistema em que os usuários digitavam texto formatado em uma caixa de texto do Quill e isso era salvo no banco de dados no formato Delta
Depois, outro membro da equipe importava esse conteúdo para um plugin do InDesign, lia a formatação aplicada no Quill e a reaplicava como estilos do InDesign
O fluxo era que o pessoal da linha de frente digitava anúncios legais de jornal e a equipe de produção os passava para o InDesign para preparação de impressão, e o formato Quill Delta facilitou muito algo que teria sido bem mais difícil se, como a maioria dos editores, tivéssemos armazenado HTML
Faz alguns anos que não ouço falar nem uso o Quill, então é bom ver que ele ainda está vivo
Notas de lançamento: https://github.com/quilljs/quill/releases/tag/v2.0.0
Post de anúncio: https://slab.com/blog/announcing-quill-2-0/
Já usei bastante o Quill; ele é fácil de integrar, o formato JSON Delta também é bem decente e a estrutura é relativamente simples
Mas, sempre que uso, fico pensando: “será que eu não deveria simplesmente usar ProseMirror?”
O Quill é uma boa solução temporária quando você precisa de recursos de edição rapidamente, mas, conforme os requisitos dessa funcionalidade crescem, você acaba sempre calculando mentalmente que em algum momento vai precisar de um plano de migração
Ao mesmo tempo, às vezes me pergunto por que não conseguimos padronizar editores de texto formatado
[1] https://slab.com/blog/announcing-quill-2-0/
Mas a ideia de realmente migrar pesa, e tenho curiosidade sobre a experiência de outras pessoas
Escolhi por ele ser de nível bem baixo e pela documentação enorme; me lembrou um pouco o D3
Depois disso, criei nós personalizados, comandos personalizados, barra de ferramentas personalizada e integração com Markdown e plugins personalizados de Markdown, e com só um pouco de código de cola ele também se integra de forma bem limpa ao Vue
Até agora, estou muito satisfeito por ter escolhido o ProseMirror
Não sei se é estranho eu ter opiniões fortes demais sobre como a tecla Return deve ser tratada em um editor de texto
Em texto simples, Return deve criar uma nova linha, e em texto formatado, Return deve criar um novo parágrafo
Se você quiser uma nova linha, pode usar Shift+Return
Nas versões anteriores isso era um problema grande, e agora não sei o quanto esse comportamento pode ser customizado
Reconheço que me importo demais com isso, mas o TipTap funcionou bem para mim
Porque ele é menos geral e só faz sentido quando se pressiona Return em certos tipos de bloco
Shift+Return nem funciona no mobile, e também é irritante precisar conhecer uma combinação de teclas escondida para obter o comportamento desejado
O editor de texto formatado do Reddit funciona assim, então vivo brigando com ele
No fim, só quero não precisar apertar Return duas vezes
Entendo a elegância de sempre manter o usuário dentro de um parágrafo e fazer com que ele escolha explicitamente a quebra de linha com Shift+Return, mas, em uma área tão delicada quanto a de editores de texto formatado, eu priorizaria a experiência do usuário acima da elegância
O tratamento de parágrafos no exemplo do Quill parece estranho
A documentação é excelente. Seria ótimo se todo projeto open source tivesse uma página como “Why Quill”[1], porque isso ajuda a entender rapidamente a filosofia do projeto e se ela combina com meus objetivos
Melhor ainda seria ter algo como “Why Not Quill”, para descobrir rapidamente em que situações ele não se encaixa bem
Todo projeto faz concessões, então comunicar isso de forma direta e clara proporciona uma experiência melhor para o usuário
[1] https://quilljs.com/docs/why-quill
Só pelo link não fica claro, mas aparentemente isso foi postado porque o v2 foi lançado há 3 dias
Até pouco tempo atrás eu estava trabalhando com o Quill v1, e não foi uma experiência muito boa
Fazer tabelas funcionarem com plugin foi doloroso, e também havia uns problemas estranhos de rolagem
Espero que o v2 tenha corrigido bastante coisa, mas vou continuar usando o TinyMCE, que é melhor em recursos
Mas me irritou o fato de precisar de uma chave de API mesmo usando JS estático no site, e também foi incômodo ver o “uso” de renderização do editor no plano gratuito diminuir rapidamente alguns dias atrás [0]
Fico curioso se isso não é um problema para você
[0] https://news.ycombinator.com/item?id=40044544
No começo eu não entendi por que o Quill tinha voltado a aparecer, mas agora vi que a aguardada versão 2.0 foi lançada há 3 dias
Veja https://slab.com/blog/announcing-quill-2-0/
Já tive um projeto antigo que sofreu bastante por usar Quill
Pessoalmente, o problema foi não ter avaliado direito as limitações do editor em comparação com os requisitos do projeto, mas a forma como a documentação enfatizava a extensibilidade da biblioteca também parecia capaz de induzir a esse tipo de problema
Se você ficar dentro dos limites, é uma biblioteca excelente. Por exemplo, é melhor evitar coisas complexas demais, como conteúdo aninhado
Seria bem útil se o site tivesse uma seção tipo “Why You Should NOT Use Quill?”
Depende do caso, mas eu não pretendo nunca mais usar Quill em um projeto de produção
Comecei a usar Quill 1.x por volta de 2016 e, no começo, gostei bastante
Quando tuitei que estava avaliando o Quill, Jason entrou em contato primeiro e me ajudou com dúvidas de implementação
Em 2019, eu estava enfrentando alguns bugs, o Quill 1.x estava em modo de manutenção, e o 2.0 estava praticamente sem documentação [1]
Tentei falar com o Jason no Twitter para ter uma noção do cronograma [2], mas basicamente recebi uma resposta no tom de mandar eu me ferrar
A empresa dele, Slab, também me bloqueou no Twitter agora, embora talvez a intenção fosse me bloquear na conta pessoal
Todo mundo tem dias estressantes quando está montando uma startup, então pode ser que eu tenha procurado na hora errada
Meu palpite é que ele estava focado na empresa e tinha tempo apenas para manter o Quill funcionando para uso interno, mas quase nenhum espaço para lançá-lo como open source. Nesse caso, eu teria preferido que isso fosse dito com franqueza
Cinco anos depois, o Quill v2 finalmente saiu, e fico feliz que a Slab ainda exista
Espero que daqui para frente exista capacidade para manter o Quill publicamente, mas, se você pretende usá-lo em produção, vale verificar qual é o nível de compromisso com o suporte e também ter um plano para o caso de as respostas simplesmente pararem
Se Jason estiver nesta thread, não guardo ressentimentos, isso já passou. Pode ignorar ou acrescentar a sua perspectiva
[1] https://github.com/quilljs/quill/issues/2435
[2] https://twitter.com/nickbaum/status/1177240103925796865
Isso foi ainda mais frustrante porque a razão de usar uma biblioteca de editor de texto formatado, em vez de fazer um do zero, é justamente evitar esse tipo de coisa
Não sei como está o v2, mas o código do v1 não é muito bem estruturado
Também havia funcionalidades básicas cuja implementação foi adiada por medo de acabar criando um milhão de pequenos bugs
De longe, a melhor coisa do Quill é o formato Delta
Mas, para quem quer mais do que negrito/sublinhado/itálico, eu recomendaria o ProseMirror
Posts relacionados. Há mais algum?
Announcing Quill 1.0 - https://news.ycombinator.com/item?id=12437345 - setembro de 2016, 82 comentários
Quill – A cross browser rich text editor with an API - https://news.ycombinator.com/item?id=10446865 - outubro de 2015, 47 comentários
Quill – An Open Source Rich Text Editor with an API - https://news.ycombinator.com/item?id=7716376 - maio de 2014, 60 comentários
Lembro de ter usado https://github.com/facebook/lexical em um projeto há cerca de um ano, e quase tudo funcionou bem de cara
Existe algum motivo para preferir Quill?