Revelado! Propósito, Funções e Mecanismo do KuroEditor vol. 2
Explicação da política de desenvolvimento, especificações e implementação do KuroEditor. Experimente na página de testes no final do post!
Diretriz de Desenvolvimento
Como este editor é para o KuroCMS, meu objetivo é fornecer o máximo de versatilidade possível, mantendo-me fiel à sua essência principal. Um editor WYSIWYG é obrigatório, construído com Vanilla JS puro. Deve ser excepcionalmente rápido, sem frameworks. Evitei que fosse um editor estritamente headless para manter um acoplamento flexível. Contanto que o chamador não especifique um @layer, ele pode manter um senso de unidade seguindo o layout de botões do chamador — embora eu não vá usar isso no KuroCMS! rs.
O CSS usa apenas Tailwind mais estilos internos para o KuroEditor. O comportamento das tabelas é semelhante ao do Dropbox Paper. Por enquanto, mesmo que não esteja perfeitamente polido, desde que a usabilidade não seja significativamente comprometida, priorizarei a conclusão em detrimento de ajustes finos. Afinal, não começa até que esteja terminado. Eu o lançarei desde que esteja razoavelmente utilizável.
Especificações Detalhadas
Explicar especificações detalhadas em um blog pode ser tedioso, então vou mostrar a você com imagens.
Como mostrado, o KuroEditor possui dois tipos de visualizações no menu superior: visualização de página e HTML. No entanto, espero que a maioria não use a visualização HTML. Ela é destinada a quem deseja escrever recursos ainda não presentes no KuroEditor usando HTML, ou para quem deseja verificar o comportamento interno via HTML.
Em seguida, temos ícones para emojis, criação de tabelas, mídia, código, linhas horizontais, salvamento automático, salvamento e índice. Mídias básicas podem ser coladas livremente na posição do cursor usando arrastar e soltar, portanto, este botão raramente é usado.
Decoração Básica de Texto
As decorações para texto e para a linha do cursor aparecem sempre que um único caractere é selecionado. Isso segue a política de não querer exibir menus constantemente. Também visa minimizar a distância de movimento do mouse.
Da esquerda: Negrito, Itálico, Sublinhado, Tachado. Em seguida, vêm as configurações H1, H2, etc., para cabeçalhos. Depois, a barra de citação e o bloco de notas. A seguir, cor do texto, tamanho da fonte, altura da linha, alinhamento do texto (esquerda, centro, direita, justificado), listas com marcadores e listas numeradas. (A propósito, pressionar a tecla Tab cria automaticamente um novo parágrafo). *Os tipos de fonte também podem ser selecionados em versões mais recentes.
Tabelas são a Prioridade Máxima
O recurso de tabela é o ponto forte do KuroEditor. Inserir linhas ou colunas é semelhante ao Dropbox Paper: quando o cursor do mouse está próximo a uma borda, um botão '+' aparece ao lado dela. Clicar nele insere uma linha ou coluna. A exclusão é feita com o botão vermelho '-' à direita de uma linha ou abaixo de uma coluna. É incrivelmente fácil manipular tabelas. Mesclar e dividir células também está a um botão de distância. Você pode até escolher a espessura da borda. Mover o mouse perto de uma borda também exibe botões de borda à direita ou na parte inferior, que mostram um menu para ajustar a espessura e a cor.

Posicionamento Flexível de Mídia
A colagem de mídia é totalmente flexível. Não serve apenas para imagens armazenadas pelo chamador; você pode criar facilmente classificações de músicas usando links do YouTube ou listas de vídeos interessantes. Se você deseja inserir uma URL a partir do teclado, digitar url aciona imediatamente a expansão automática.

Usando o Índice (Tabela de Conteúdos)
O gerenciamento de parágrafos para coisas como romances ou contratos é fácil usando H1, H2, etc. Ao usar o índice no menu superior, você pode ver rapidamente até onde digitou, mesmo em documentos longos.

Visão Geral da Integração
Finalmente, a integração é incrivelmente simples. Basta inserir uma linha onde você deseja o editor e preparar funções de retorno (callback) para coisas como salvar. É passado como HTML. No KuroCMS, esse HTML recebido é armazenado e gerenciado como dados de artigos. Para mais detalhes, consulte o link abaixo. Como existem muito poucos pontos de acoplamento, ele pode ser facilmente integrado em qualquer ferramenta.
Conclusão
Os japoneses realmente adoram representações em tabelas (assim como as casas japonesas adoram divisórias! rs). No entanto, poucos editores estrangeiros têm boas implementações. Mesmo quando têm, geralmente são difíceis de usar e carecem de personalização visual. Fico especialmente confuso sobre o motivo pelo qual coisas como mesclagem de células são tão raras. De qualquer forma, espero que o KuroEditor seja útil, mesmo que apenas para algumas pessoas.
[Fontes]
- Repositório de Código do KuroEditor no GitHub
- Página de Apresentação do KuroEditor
- Página de Demonstração e Testes do KuroEditor