Caminho no Gestor bibliotecas/html-editor.php
O editor que aparece nos formulários de páginas, layouts, componentes, templates, publicações, menus, galerias, formulários e índices (cerca de 30 chamadas em 12 módulos). O servidor monta a tela e responde ao AJAX; a edição em si roda no navegador (interface/html-editor.js e html-editor-interface.js).
Abrir o editor: html_editor_componente()
gestor_incluir_biblioteca('html-editor');
$_GESTOR['pagina'] = modelo_var_troca($_GESTOR['pagina'], '#html-editor#', html_editor_componente([
'editar' => true,
'modulo' => $modulo, // o JSON do módulo
'alvo' => 'paginas', // escolhe modelos e prompts de IA
'css_precompiled' => $registro['css_precompiled'],
'layout_id' => $registro['layout_id'], // para pré-visualizar com a cascata do layout
]));Parâmetros: editar / adicionarEditar (edição, ou adição que já edita HTML e CSS), modulo, alvo, alvos_modelos (alvos extras de modelos), publisher e publisherPage (controles de variáveis do publicador, html_editor_publisher_controls()), css_precompiled e layout_id.
A tela tem:
-
código HTML e CSS em CodeMirror (assets externos);
-
visual e pré-visualização num
iframecom o Tailwind rodando no navegador (versão do registro,html_editor_tailwind_browser_version()), nos tamanhos desktop, tablet e celular; o CSS de base é a mesma cascata do site: pré-compilado do layout, do recurso e o CSS autoral do layout (html_editor_css_precompiled_baseline(),html_editor_layout_css_autoral(),html_editor_css_precompiled_concatenar()). Trocar o layout no formulário recarrega essa cascata (html-editor-layout-css); -
modelos (templates por alvo) para começar uma página;
-
variáveis
@[[…]]@e widgets mostrados como caixas no visual, com o conteúdo real renderizado sob demanda; -
assistente de IA (ia.php), aba SEO & Compartilhamento nas páginas, e o histórico de backups do HTML/CSS para restaurar.
O que o navegador compila vai para css_compiled ao salvar, com a assinatura de procedência (recursos).
AJAX: html_editor_ajax_interface()
Chamada pela interface.php quando a biblioteca está entre as do módulo. Primeiro passa por ia_ajax_interface() e depois despacha pela ajax-opcao:
| Opção | Função | Faz |
|---|---|---|
html-editor-templates-load |
html_editor_ajax_templates_load() |
Lista os modelos do alvo (filtro html-editor.templates.load.where) |
html-editor-widget-types, html-editor-widgets-list |
html_editor_ajax_widget_types(), html_editor_ajax_widgets_list() |
Tipos de widget e instâncias para inserir (html_editor_widgets_buscar()) |
html-editor-widget-render |
html_editor_ajax_widget_render() |
Renderiza um widget para o visual |
html-editor-render-vars |
html_editor_ajax_render_vars() |
Troca variáveis e widgets do HTML por caixas visuais (html_editor_boxes_variaveis(), html_editor_boxes_widgets(), html_editor_resolver_variaveis(), html_editor_resolver_var(), html_editor_var_box(), html_editor_var_pattern(), html_editor_render_widget_signature()) |
html-editor-layout-css |
html_editor_ajax_layout_css() |
CSS do layout escolhido, separado em pré-compilado e autoral |
html-editor-ia-requests |
html_editor_ajax_ia_requests() |
Envia o pedido à IA com HTML, CSS, modo e tokens do tema |
Tokens do tema para a IA
Para a IA usar as cores e fontes do site em vez de inventar, o editor resume o contrato Tailwind do projeto (contents/tailwindcss/browser-contract.css, html_editor_tailwind_browser_contract()) num bloco {{theme_tokens}} de até ~1,5 KB (teto 2 KB), priorizando cor, fonte e espaçamento: html_editor_ia_tokens_tema_compilar(), com html_editor_ia_tokens_tema_limite(), html_editor_ia_tokens_tema_namespaces(), html_editor_ia_tokens_tema_valor_util(), html_editor_ia_tokens_tema_bloco(), html_editor_ia_tokens_tema_componentes(), html_editor_ia_css_classes_resumir() e html_editor_ia_extrair_tokens_tema(). O modo de IA recebe o bloco no marcador próprio (html_editor_ia_theme_tokens_marcador(), html_editor_ia_modo_theme_tokens_aplicar()).
Inclusões e filtros
-
html_editor_include(['js_vars' => …])inclui o editor visual e suas dependências; os filtroshtml-editor.html_editor_include.projectJSehtml-editor.html_editor_include.imagepickJS(hooks) deixam o projeto trocar o JS do projeto e o seletor de imagens. -
html_editor_assets_registro()carrega sob demanda o registro de assets externos. -
html_editor_tailwind_browser_contract()lê o contrato de tema do projeto (contents/tailwindcss/browser-contract.css, que prevalece sobre o do core) entregue ao Tailwind do navegador.
Funções
Gerado a partir de gestor/bibliotecas/html-editor.php · 37 funções
html_editor_publisher_controls
ver no código · linha 26 ↗html_editor_publisher_controls(array $params = false)Publisher controles.
Parâmetros
$paramsarray- Parâmetros da função.
html_editor_tailwind_browser_version
ver no código · linha 121 ↗html_editor_tailwind_browser_version(): stringVersão do @tailwindcss/browser usada pelos editores (req-117).
Retorno
html_editor_assets_registro
ver no código · linha 136 ↗html_editor_assets_registro(): arrayRegistro de assets externos, carregado sob demanda (req-156).
Retorno
html_editor_tailwind_browser_contract
ver no código · linha 156 ↗html_editor_tailwind_browser_contract(): stringContrato de tema entregue ao Tailwind Browser (req-114, extraído em req-117).
Retorno
html_editor_ia_tokens_tema_limite
ver no código · linha 181 ↗html_editor_ia_tokens_tema_limite(): intOrçamento de bytes do bloco {{theme_tokens}} (req-127).
Retorno
html_editor_ia_tokens_tema_namespaces
ver no código · linha 204 ↗html_editor_ia_tokens_tema_namespaces(): arrayNamespaces de tema do Tailwind v4 aceitos no bloco {{theme_tokens}} (req-127).
Retorno
html_editor_ia_tokens_tema_valor_util
ver no código · linha 233 ↗html_editor_ia_tokens_tema_valor_util(string $valor): boolDecide se o VALOR de uma declaração de tema cabe no prompt (req-127).
Parâmetros
$valorstring- valor da declaração, já sem o
;.
Retorno
html_editor_ia_tokens_tema_bloco
ver no código · linha 260 ↗html_editor_ia_tokens_tema_bloco(string $css): stringRecorta o conteúdo do primeiro bloco @theme / @theme static do contrato (req-127).
Parâmetros
$cssstring- CSS do contrato, já sem comentários.
Retorno
@theme.html_editor_ia_tokens_tema_componentes
ver no código · linha 294 ↗html_editor_ia_tokens_tema_componentes(string $css): arrayLista os nomes de classe declarados nos blocos @layer components do contrato (req-127).
Parâmetros
$cssstring- CSS do contrato, já sem comentários.
Retorno
html_editor_ia_css_classes_resumir
ver no código · linha 345 ↗html_editor_ia_css_classes_resumir(string $css, int|null $limiteBytes = null): stringResume um CSS qualquer na lista de nomes de classe que ele define (req-127).
Parâmetros
$cssstring- CSS a resumir.
$limiteBytesint|null- orçamento total;
nullusahtml_editor_ia_tokens_tema_limite().
Retorno
html_editor_ia_tokens_tema_compilar
ver no código · linha 387 ↗html_editor_ia_tokens_tema_compilar(string $css, int|null $limiteBytes = null): stringMonta o bloco {{theme_tokens}} a partir do CSS do contrato (req-127).
Parâmetros
$cssstring- conteúdo do
browser-contract.css. $limiteBytesint|null- orçamento total;
nullusahtml_editor_ia_tokens_tema_limite().
Retorno
html_editor_ia_theme_tokens_marcador
ver no código · linha 523 ↗html_editor_ia_theme_tokens_marcador(): stringMarcador do bloco condicional de tokens de tema nos .md dos modos de IA (req-127).
Retorno
html_editor_ia_modo_theme_tokens_aplicar
ver no código · linha 543 ↗html_editor_ia_modo_theme_tokens_aplicar(string $modo, string $theme_tokens): stringAplica (ou remove) a seção de tokens de tema no texto do modo de IA (req-127).
Parâmetros
$modostring- texto do modo de IA.
$theme_tokensstring- saída de
html_editor_ia_extrair_tokens_tema().
Retorno
html_editor_ia_extrair_tokens_tema
ver no código · linha 595 ↗html_editor_ia_extrair_tokens_tema(string|null $caminhoContrato = null, int|null $limiteBytes = null): stringExtrator semântico leve de tokens de tema para o Assistente de IA (req-127).
Parâmetros
$caminhoContratostring|null- caminho explícito do contrato;
nullresolve pelo projeto ativo. $limiteBytesint|null- orçamento total;
nullusahtml_editor_ia_tokens_tema_limite().
Retorno
html_editor_css_precompiled_baseline
ver no código · linha 632 ↗html_editor_css_precompiled_baseline(array $params = false): stringBaseline de CSS pré-compilado do editor (req-117).
Parâmetros
$paramsarray
Retorno
html_editor_layout_css_autoral
ver no código · linha 681 ↗html_editor_layout_css_autoral(string $layout_id): stringCSS AUTORAL do layout — a folha que o runtime serve e o editor não recebia (req-160).
Parâmetros
$layout_idstring- Layout da página.
Retorno
html_editor_css_precompiled_concatenar
ver no código · linha 714 ↗html_editor_css_precompiled_concatenar(string $layout, string $recurso): stringConcatena as camadas do baseline na ordem da cascata do runtime (req-117).
Parâmetros
$layoutstring- CSS pré-compilado do layout.
$recursostring- CSS pré-compilado do próprio recurso.
Retorno
html_editor_componente
ver no código · linha 744 ↗html_editor_componente($params = false)Componente Editor HTML.
Parâmetros
$params
html_editor_include
ver no código · linha 1120 ↗html_editor_include($params = false)Incluir o editor HTML visual.
Parâmetros
$params
html_editor_ajax_interface
ver no código · linha 1209 ↗html_editor_ajax_interface(array $params = false)AJAX Interface.
Parâmetros
$paramsarray- Parâmetros da função.
html_editor_ajax_layout_css
ver no código · linha 1240 ↗html_editor_ajax_layout_css()CSS do layout escolhido no formulário (req-160).
html_editor_var_pattern
ver no código · linha 1293 ↗html_editor_var_pattern()============================================================================ req-093 (BATCH-093) — Renderização de variáveis/widgets como caixas no Editor HTML Visual CLÁSSICO e no preview, espelhando a Editbar (Dashboard Site Toolbar).
html_editor_var_box
ver no código · linha 1299 ↗html_editor_var_box($marker, $rendered, $tipo)Parâmetros
$marker$rendered$tipo
html_editor_render_widget_signature
ver no código · linha 1306 ↗html_editor_render_widget_signature($signature)Parâmetros
$signature
html_editor_widget_renderizar
ver no código · linha 1329 ↗html_editor_widget_renderizar($sig): arrayRenderiza um widget como a página publicada o entrega, para as prévias do editor.
Parâmetros
$sig
Retorno
css são as tags <style> registradas na renderização.html_editor_widget_js_modulos
ver no código · linha 1350 ↗html_editor_widget_js_modulos(): arrayMódulos que têm controlador público de widget (<modulo>.widget.js), pelo cadastro de widgets. A prévia do editor carrega o controlador dos widgets presentes na página; com uma lista fixa no JavaScript, widget de projeto ou de plugin ficava sem comportamento na prévia.
Retorno
html_editor_resolver_var
ver no código · linha 1371 ↗html_editor_resolver_var($id)Parâmetros
$id
html_editor_boxes_widgets
ver no código · linha 1397 ↗html_editor_boxes_widgets($html)Parâmetros
$html
html_editor_resolver_variaveis
ver no código · linha 1413 ↗html_editor_resolver_variaveis($html)Parâmetros
$html
html_editor_boxes_variaveis
ver no código · linha 1424 ↗html_editor_boxes_variaveis($html)Parâmetros
$html
html_editor_ajax_render_vars
ver no código · linha 1469 ↗html_editor_ajax_render_vars()AJAX — Recebe o HTML do editor (CodeMirror) e devolve duas versões renderizadas (req-093): - boxes: variáveis globais em caixas (.c2f-var-box + data-c2f-marker) + widgets renderizados entre comentários — para carregar no EDITOR VISUAL (átomos reversíveis no save). - values: variáveis globais resolvidas para valor puro (sem caixas) — para o PREVIEW iframe. As variáveis LOCAIS/de simulação (desconhecidas do backend) são preservadas para o frontend resolver.
html_editor_ajax_widget_render
ver no código · linha 1493 ↗html_editor_ajax_widget_render()AJAX Widget Render.
html_editor_ajax_widget_types
ver no código · linha 1534 ↗html_editor_ajax_widget_types()AJAX Widget Types.
html_editor_ajax_widgets_list
ver no código · linha 1570 ↗html_editor_ajax_widgets_list()AJAX Widgets List.
html_editor_widgets_buscar
ver no código · linha 1652 ↗html_editor_widgets_buscar(array $params = array()): arrayBusca paginada de itens de widget para o painel "+" do Live Editor (BATCH-081 §6).
Parâmetros
$paramsarray- { module?:string, busca?:string, pagina?:int, limite?:int }
Retorno
$_GESTOR['ajax-json'].html_editor_ajax_templates_load
ver no código · linha 1725 ↗html_editor_ajax_templates_load()AJAX Templates.
html_editor_ajax_ia_requests
ver no código · linha 1844 ↗html_editor_ajax_ia_requests()AJAX IA Requests.
Widgets e prévias responsivas
html_editor_widget_renderizar renderiza um widget declarado e retorna um array com html e css; html_editor_widget_js_modulos devolve um mapa módulo => true para widgets ativos com arquivo .widget.js. O Dashboard coleta CSS, head e scripts registrados durante a renderização e restaura o contexto temporário. O editor visual usa altura baseada no viewport, calc(100vh - 220px), nos modais Tailwind de edição/visualização. Widgets precisam dos estilos de template, registro e tema na prévia isolada. Veja Dashboard para a ordem das folhas.