Conn2Flow
Navegação das docs

SDD

req-142: Substituição do TinyMCE pelo Quill via biblioteca `editor-texto`

O TinyMCE aparece em 11 arquivos. O núcleo é pequeno:

  • Status do intake: ready-for-intake

  • Data: 2026-08-29

  • Origem: instrução do Engenheiro Chefe durante o BATCH-144 — o TinyMCE é licenciado (CDN com API key própria) e o Quill, já usado no publisher-pages, cobre a mesma necessidade sem custo

  • Classificação: substituição de dependência, módulo configuracao (variáveis), biblioteca editor-texto, editor HTML

  • Batch candidato: BATCH-145


1. Situação atual (medida)

O TinyMCE aparece em 11 arquivos. O núcleo é pequeno:

Arquivo Papel
gestor/bibliotecas/configuracao.php:464 Carrega [REDACTED]>/tinymce/5/tinymce.min.js — a dependência paga, com a chave exposta no código
gestor/bibliotecas/configuracao.php:27 Tipo de variável tinymce na lista do CRUD
gestor/assets/configuracao/configuracao.js:10,243,310 Três inicializações (selector: 'textarea.tinymce' e dois new tinymce.Editor(...))
gestor/assets/interface/html-editor-interface.js:861 tinymce.activeEditor.setContent(valor, {format:'raw'})
resources/{pt-br,en}/components/configuracao-campos/configuracao-campos.html Markup do campo
resources/{pt-br,en}/variables.json Rótulo do tipo de variável

2. Por que agora ficou simples

O BATCH-144 criou gestor/bibliotecas/editor-texto.php, ponto único do Quill: versão do CDN, CSS do editor, CSS de conteúdo publicado e paridade visual com a página. Um módulo passa a precisar apenas de editor_texto_incluir() e da declaração "editor-texto" no manifesto.

3. Escopo

  1. Inicialização: trocar os três new tinymce.Editor(...) por Quill, preservando o contrato do campo (valor lido/gravado como HTML) e o comportamento de múltiplos editores na mesma tela.

  2. Inclusão: configuracao.php passa a chamar editor_texto_incluir(); remover o <script> do [REDACTED] e a API key.

  3. html-editor-interface.js:861: substituir tinymce.activeEditor.setContent() pela API equivalente do Quill.

  4. Tipo de variável: decidir entre manter o identificador tinymce por compatibilidade de dados ou migrar para um nome neutro (richtext), com migração dos registros existentes.

  5. Recursos: atualizar o markup do configuracao-campos e os rótulos em variables.json (pt-br/en), com version bump.

4. Critérios de aceite

  1. Nenhuma referência a [REDACTED] ou tinymce no core (exceto migração de dados, se houver).

  2. Campo de variável do tipo rico edita e grava HTML idêntico ao comportamento anterior.

  3. Múltiplos editores na mesma tela continuam funcionando de forma independente.

  4. A inclusão passa exclusivamente pela biblioteca editor-texto — zero referência direta ao CDN.

  5. Suítes PHPUnit e Vitest verdes; teste cobrindo a declaração da biblioteca no manifesto do módulo.

5. Observação

A API key do TinyMCE está versionada no repositório (configuracao.php:464). Ao remover a dependência, convém revogá-la no painel do fornecedor — chave publicada em repositório continua válida mesmo depois de o código sair.

O Futuro é Híbrido: Humano + IA.

O Conn2Flow é a ferramenta. Se você precisa do Arquiteto para desenhar a estratégia da sua empresa usando essa tecnologia...

Contrate Consultoria Especializada