Caminho no Gestor bibliotecas/assets-externos.php
Todo JavaScript e CSS de terceiros que o Gestor usa passa por um registro único, com a versão fixada. Um módulo não escreve a tag: pede assets_externos_incluir('codemirror').
O arquivo é servido de gestor/assets/vendor/<biblioteca>/<versão>/ quando existe, e do CDN do registro quando não existe. Assim o IP do visitante não vai para CDNs de terceiros, e uma publicação nova no npm não entra em produção sem revisão.
Bibliotecas registradas
| Nome | Versão | Arquivos |
|---|---|---|
jquery |
3.7.1 | jquery.min.js |
fomantic-ui |
2.9.4 | semantic.min.css/.js + fontes e ícones do tema |
fomantic-icon |
2.9.4 | Só os ícones, para layouts Tailwind |
codemirror |
5.65.20 | Núcleo, tema, addons e modos HTML/CSS/JS/Markdown |
quill |
2.0.3 | quill.snow.css, quill.min.js |
sortablejs |
1.15.6 | Sortable.min.js |
lucide |
0.544.0 | lucide.min.js |
qrcodejs |
1.0.0 | qrcode.min.js |
fingerprintjs |
4 | fp.min.js |
tailwindcss-browser |
4.3.0 | Compilador do Tailwind usado no editor visual; acompanha a versão do build offline |
Os arquivos das instalações novas já vêm em gestor/assets/vendor/. Para baixar o que faltar (ou uma versão nova depois de mudar o registro):
c2f assets:vendor [--lib=codemirror] [--listar] [--forcar]A entrada arquivos de uma biblioteca lista o que é baixado mas não vira tag (as fontes que o CSS pede por caminho relativo). Sem elas, servido do disco, o Fomantic fica sem ícones.
Uso
gestor_incluir_biblioteca('assets-externos');
assets_externos_incluir('sortablejs'); // false se o nome não está registrado
$tags = assets_externos_tags('quill', $vendorFisico, $vendorPublico); // ['css' => [...], 'js' => [...]]
$mapa = assets_externos_urls_js(['codemirror']); // biblioteca => arquivo => URL, para o JavaScriptassets_externos_urls_js() existe para o que monta tags no navegador (os iframe de pré-visualização e a barra de edição): recebem as mesmas URLs, sem conhecer versão nem host.
Armadilhas
-
A troca para o CDN é silenciosa: um arquivo ausente em
vendor/sai do CDN sem aviso. Depois de mudar uma versão, rodec2f assets:vendor. -
assets_externos_incluir()põe as tags de CSS pelagestor_pagina_css_incluir($tag), que as empilha na fila de JavaScript do fim da página (gestor.php). O CSS funciona, mas carrega depois do conteúdo. -
A URL local usa
url-raiz, que inclui o prefixo de idioma quando ele está na URL.
Auxiliares internos (usados pelas funções acima; raramente chamados direto): assets_externos_registro(), assets_externos_url(), assets_externos_urls_map().
Funções
Gerado a partir de gestor/bibliotecas/assets-externos.php · 6 funções
assets_externos_registro
ver no código · linha 47 ↗assets_externos_registro(): array<string, array{versao: string, cdn: string, css: list<string>, js: list<string>}>Registro central: nome => versão + arquivos.
Retorno
assets_externos_url
ver no código · linha 217 ↗assets_externos_url(array $lib, string $nome, string $arquivo, string $vendorFisico, string $vendorPublico): stringURL de um arquivo da biblioteca: local quando existe, CDN como fallback.
Parâmetros
$libarray- Entrada do registro.
$nomestring- Identificador da biblioteca (subdiretório em
vendor/). $arquivostring- Nome do arquivo dentro da biblioteca.
$vendorFisicostring- Caminho físico de
assets/vendor/(com separador final). $vendorPublicostring- URL pública de
vendor/(com barra final).
Retorno
assets_externos_tags
ver no código · linha 238 ↗assets_externos_tags(string $nome, string $vendorFisico = '', string $vendorPublico = ''): array{css: list<string>, js: list<string>}Tags de uma biblioteca registrada.
Parâmetros
$nomestring- Identificador no registro.
$vendorFisicostring- Caminho físico de
assets/vendor/. $vendorPublicostring- URL pública de
vendor/.
Retorno
assets_externos_urls_map
ver no código · linha 279 ↗assets_externos_urls_map(list<string> $nomes = Array(), string $vendorFisico = '', string $vendorPublico = ''): array<string, array<string, string>>Mapa biblioteca => arquivo => URL das bibliotecas pedidas (req-156).
Parâmetros
$nomeslist<string>- Identificadores no registro; vazio devolve todas as bibliotecas.
$vendorFisicostring- Caminho físico de
assets/vendor/. $vendorPublicostring- URL pública de
vendor/.
Retorno
assets_externos_urls_js
ver no código · linha 308 ↗assets_externos_urls_js(list<string> $nomes = Array()): array<string, array<string, string>>assets_externos_urls_map() resolvido com os caminhos do ambiente corrente (req-156).
Parâmetros
$nomeslist<string>- Identificadores no registro.
Retorno
assets_externos_incluir
ver no código · linha 329 ↗assets_externos_incluir(string $nome): boolInclui uma biblioteca de terceiro no pipeline da página.
Parâmetros
$nomestring- Identificador no registro (ex.:
sortablejs).
Retorno