-
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), bibliotecaeditor-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
-
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. -
Inclusão:
configuracao.phppassa a chamareditor_texto_incluir(); remover o<script>do[REDACTED]e a API key. -
html-editor-interface.js:861: substituirtinymce.activeEditor.setContent()pela API equivalente do Quill. -
Tipo de variável: decidir entre manter o identificador
tinymcepor compatibilidade de dados ou migrar para um nome neutro (richtext), com migração dos registros existentes. -
Recursos: atualizar o markup do
configuracao-campose os rótulos emvariables.json(pt-br/en), com version bump.
4. Critérios de aceite
-
Nenhuma referência a
[REDACTED]outinymceno core (exceto migração de dados, se houver). -
Campo de variável do tipo rico edita e grava HTML idêntico ao comportamento anterior.
-
Múltiplos editores na mesma tela continuam funcionando de forma independente.
-
A inclusão passa exclusivamente pela biblioteca
editor-texto— zero referência direta ao CDN. -
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.