Os módulos personalizados são componentes reutilizáveis que você pode usar em todo o site. Crie-os seguindo as práticas recomendadas de velocidade, experiência do usuário e acessibilidade.
module.css
e o module.js
do módulo uma única vez. Por padrão, module.css
e module.js
não são carregados de forma assíncrona, mas você pode alterar isso incluindo css_render_options e js_render_options no meta.json do módulo.
Os módulos podem ser criados dentro do gerenciador de design ou localmente, usando a CLI da HubSpot. No gerenciador de design, os arquivos dos módulos são exibidos em um editor multipainel.
module.css
para adicionar CSS a um módulo.
Em geral, o module.css
suporta um subconjunto muito limitado do HubL. No entanto, você pode usar module_asset_url("my-image.png")
para imagens adicionadas como ativos vinculados ao módulo. Isso permite vincular ativos como imagens, empacotadas no próprio módulo. Por exemplo:
module.html
que correspondem às classes CSS em seu arquivo module.css.
Por exemplo, você pode ter um módulo de imagem e texto. Você quer que os criadores de conteúdo sejam capazes de posicionar a imagem à direita ou à esquerda do texto com base em um campo de escolha. Para fazer isso, você pode definir seus arquivos module.html
e module.css
da seguinte forma:
require_css
são a melhor opção.
Para fornecer aos criadores de conteúdo controle direto sobre propriedades específicas sem usar classes, você pode adicionar estilo ao arquivo module.html
dentro das tags required_css
. Por exemplo:
o module.html
pode renderizar HubL, você pode usar os valores de campo do módulo como variáveis CSS. Quando um criador de conteúdo atualiza o campo no editor de páginas, o CSS é atualizado de acordo. Esses blocos movem as tags <style>
para o <head>
da sua página dentro da instrução standard_header_includes
.
Você também pode definir o CSS abrangido apenas à instância do módulo, envolvendo o CSS com as tags scope_css
. Por exemplo, você poderia atualizar o código do módulo acima da seguinte forma:
require_css
.
require_css
é uma função do HubL que pode ser adicionada ao module.html para informar ao HubSpot que um determinado módulo ou modelo requer um determinado arquivo CSS para ser exibido. Uma tag de link apontando para o arquivo css é adicionada ao <head>
da página dentro de standard_header_includes
.
A função require_css
só carregará esse arquivo CSS uma vez, independentemente do número de vezes que esse mesmo arquivo seja exigido pelos módulos e modelos em uma determinada página. Isso o torna ideal para situações em que os estilos são compartilhados entre os módulos, mas não faz sentido adicionar o CSS diretamente às folhas de estilo principais utilizadas em cada página do seu site.
O require_css
e os arquivos CSS associados fazem a mesma coisa, mas o require_css
pode ser executado de forma condicional com base nos valores do campo. Isso evita o carregamento de códigos desnecessários.
module.js
para adicionar JavaScript a um módulo.
Assim como o arquivo module.css
, o arquivo module.js
não suporta HubL.
class="yourClassName"
quanto data-your-attribute="yourValue"
.
require_js
para fornecer variáveis que você pode acessar do script de modelagem.
require_js
é uma função do HubL que informa ao HubSpot que um determinado módulo ou modelo requer um determinado arquivo JavaScript para ser carregado corretamente. A função tem dois parâmetros: o caminho para o arquivo e o local onde o arquivo deve ser adicionado (“head” ou “footer”).
Em um módulo, o require_js
somente pode ser adicionado ao módulo.html. O arquivo JavaScript referido na instrução require_js
somente será carregado uma vez por página, independentemente do número de vezes que seja requerido pelos módulos e modelos dentro da página. Isso reduz o número de solicitações HTTP e evita a duplicação de código.
Algumas situações em que isso se torna útil:
require_js
para compartilhar esse script entre os módulos.require_js
, você pode associar o JavaScript ao módulo.require_js
e os arquivos javascript associados fazem a mesma coisa, mas o require_js
pode ser executado de forma condicional com base nos valores do campo. Isso evita que códigos desnecessários sejam carregados. Você também tem a opção de carregar o JavaScript no cabeçalho, caso você precise disso.
require_js
coloca o JavaScript no “footer” por padrão. Saiba mais sobre como optimizar o desempenho.