Última modificação: 7 de outubro de 2025
‘Crie um componente reutilizável em suas páginas e modelos chamado módulo personalizado. Você aprenderá sobre campos e os usará com o HubL.’;
‘https://cdn2.hubspot.net/hubfs/327485/Module%20Editor-1-1.png’;
Neste tutorial, você usará o tema do HubSpot CMS Boilerplate para aprender como criar um módulo e usá-lo em modelos e páginas como parte de um tema. No final do tutorial, você terá criado um módulo de depoimentos que inclui um campo de imagem, um campo de texto e um campo de rich text.
Antes de começar
Antes de começar com este tutorial:
- Configure um Ambiente de testes para desenvolvedores do HubSpot CMS. Você pode usar sua conta existente, mas o ambiente de testes permitirá o desenvolvimento sem afetar os ativos da sua conta principal.
- Instale o Node.js, que habilita as ferramentas de desenvolvimento local da HubSpot. As versões 10 ou superior são compatíveis.
Se quiser avançar, você pode visualizar os arquivos do projeto concluídos. Como o código do tema do CMS Boilerplate pode mudar com o tempo, apenas os arquivos mais críticos que os desenvolvedores precisarão criar ou editar durante o tutorial são incluídos. Esses campos incluem:
- Testimonial.module: a pasta que contém os arquivos que compõem o módulo personalizado que você criará como parte do tutorial.
- homepage.html: o modelo que será editado para incluir o módulo personalizado.
- images: a pasta que contém as imagens de perfil que você usará no módulo.
Configurar seu ambiente de desenvolvimento local
Durante este tutorial, você fará o desenvolvimento do módulo localmente. Para interagir com o HubSpot na interface da linha de comando, você precisará instalar a CLI do HubSpot e configurá-la para acessar sua conta.
- No terminal, execute o comando a seguir para instalar a CLI globalmente. Para instalar a CLI apenas no seu diretório atual, execute o
npm install @hubspot/cli
.
npm install -g @hubspot/cli
- No diretório onde você armazenará os arquivos do tema, autentique a sua conta da HubSpot para que seja possível interagir com ela por meio da CLI.
- Pressione Enter para abrir a página da chave de acesso pessoal no navegador.
- Selecione a conta para a qual deseja implantar e clique em Continuar com esta conta. Você será redirecionado para a página da chave de acesso pessoal da conta.
- Ao lado de Chave de acesso pessoal, clique em Mostrar para revelar sua chave. Em seguida, clique em Copiar para copiá-la para a área de transferência.
- Cole a chave copiada no terminal e pressione Enter.
- Insira um nome exclusivo para a conta. Esse nome só será visto e usado por você ao executar comandos. Em seguida, pressione Enter. Para conectar as ferramentas de desenvolvimento local à sua conta:
Você verá uma mensagem de sucesso confirmando que o arquivo ~/.hscli/config.yml
foi criado.
Adicionar o CMS Boilerplate à sua conta
- Execute o comando abaixo para criar um novo tema chamado
my-theme
. Uma pasta de temas chamada my-theme
será criada no seu diretório de trabalho contendo os ativos de boilerplate.
hs create website-theme my-theme
- Carregue os arquivos na sua conta.
hs upload <src> <destination>
Parâmetro | Descrição |
---|
| O caminho para os arquivos locais, em relação ao diretório de trabalho atual. |
| O caminho de destino na sua conta HubSpot. Isso pode ser uma nova pasta. |
Por exemplo, hs upload my-theme my-new-theme
faria o upload da pasta my-theme
do seu computador para uma pasta my-new-theme
no HubSpot.
Criar um módulo no HubSpot
Com o boilerplate de CMS em seu ambiente local, você criará um novo módulo para o tema.
-
Faça login na sua conta da HubSpot e acesse o gerenciador de design, navegando até Marketing > Arquivos e modelos > Ferramentas de design.
-
Na barra lateral esquerda do gerenciador de design, abra a pasta de temas que você acabou de fazer o upload.
-
Na pasta de temas, abra a pasta de módulos.
-
No canto superior esquerdo, clique em **Arquivo > Novo arquivo **para criar um novo módulo nesta pasta.
-
Na caixa de diálogo, clique no menu suspenso, selecione Módulo e clique em Próximo.
-
Marque a caixa de seleção Páginas para disponibilizar o módulo para o site e as landing pages.
-
Nomeie o módulo como Depoimentos e clique em Criar.
Adicionar campos ao módulo
Em seguida, você adicionará três campos ao módulo:
- Um campo de texto para armazenar o nome do cliente que está fornecendo o depoimento.
- Um campo de imagem que armazenará a imagem de perfil do cliente.
- Um campo de rich text que armazenará o depoimento do cliente.
Adicionar campo de texto para nome do cliente
-
Na barra lateral direita do editor de módulos, clique no menu suspenso **Adicionar campo **e selecione Texto.
-
Na barra lateral direita, clique no ícone de lápis no canto superior direito para dar um nome para o campo. Para este tutorial, insira o Nome do cliente. Você verá a mudança do nome da variável do HubL para customer_name.
-
Defina o Texto padrão para Sally.
- Na barra lateral direita, clique no ícone de trilha de navegação para retornar ao menu do módulo principal.
Adicionar o campo de imagem para a foto de perfil do cliente
- Adicione outro campo usando o mesmo método, desta vez, selecionando o tipo de campo de Imagem.
- Rotule o campo de imagem Imagem do perfil, em seguida, defina o nome da variável do HubL como profile_pic.
- Em Imagem padrão, selecione a imagem do perfil fornecida para Sally na pasta de imagens dos arquivos do projeto concluídos.
- Defina o Texto alternativo como Imagem de perfil de Sally.
Adicionar o campo de rich text para o depoimento de Sally
- Adicione outro campo usando o mesmo método, desta vez selecionando o tipo de campo de Rich text.
- Rotule o campo de rich text Depoimentos.
- Clique na caixa de Rich text padrão e digite “Não tive nada além de experiências maravilhosas com esta empresa.”
Até agora, você adicionou dados em vários campos de módulo. Neste momento, porém, o módulo não contém nenhum HTML para renderizar esses dados. No editor do módulo, isso é refletido pelo estado vazio da seção module.html
.
Em seguida, você adicionará o HubL ao module.html
para exibir os dados do campo.
Adicionar o HubL para exibir os dados de campo
Para exibir dados dos campos criados anteriormente, adicione o seguinte HubL ao painel module.html
:
<!-- module.html -->
{{module.customer_name}}
<img src={{module.profile_pic.src}} alt="{{module.profile_pic.alt}}">
{{module.testimonial}}
Os tokens HubL acima usam notação de ponto para acessar os dados de cada campo. Nesse caso, como queremos extrair os dados dos campos do módulo, cada token começa com module
, seguido pelo nome da variável HubL do campo. Você pode usar a notação de ponto para acessar ainda mais propriedades específicas de um campo, o que você pode ver nos tokens profile_pic
na linha 3 acima.
- Com o HubL adicionado ao módulo, clique em Visualizar no canto superior direito para ver como o módulo está até agora.
- No canto superior direito, clique em Publicar alterações.
Depois de criar e publicar o módulo no HubSpot, você usará a CLI para enviá-lo para o ambiente local, de modo a poder visualizar seu conteúdo e fazer quaisquer alterações necessárias.
Exibir e modificar o módulo localmente
Para exibir o módulo localmente, primeiro você precisará baixá-lo para o tema local:
-
No terminal, execute o seguinte comando:
hs fetch <hs_src> <destination>
:
-
<hs_src>
representa o caminho do arquivo do módulo no HubSpot. Para obter o caminho do arquivo, clique com o botão direito do mouse no módulo, na barra lateral esquerda do gerenciador de design, e selecione Copiar caminho.
-
<destination>
representa o caminho para o diretório local onde se encontra o tema. Se omitido, o comando será o padrão para o diretório de trabalho atual.
Por exemplo, se você já estiver no diretório de trabalho, o comando de busca pode ser semelhante ao seguinte:
hs fetch my-theme/modules/testimonial.module
Abrir a pasta do módulo no seu ambiente local
No seu editor de códigos preferido, acesse a pasta do módulo que você acabou de baixar da sua conta da HubSpot. Dentro da pasta do módulo, você verá cinco arquivos diferentes:
Parâmetro | Descrição |
---|
fields.json | Um objeto JSON que contém os campos do módulo. |
meta.json | Um objeto JSON que contém metainformações sobre seu módulo. |
module.css | O arquivo CSS que estiliza o módulo. |
module.html | O HTML e o HubL do seu módulo. |
module.js | O JavaScript do seu módulo. |
Você pode encontrar informações mais detalhadas em nossa documentação sobre a estrutura de arquivos do módulo, principalmente as relacionadas aos arquivos fields.json
e meta.json
. Neste tutorial, vamos nos concentrar nos arquivos fields.json
, module.css
e module.html
e como eles são gerados, baixados e enviados para o editor de módulos no Gerenciador de design.
Exibir o arquivo fields.json do módulo
Abra o arquivo fields.json
do módulo. Além de alguns dos números de id
, o atributo src
do campo de imagem e, potencialmente, a ordem dos campos, o arquivo deve conter um objeto JSON semelhante ao seguinte:
//fields.json
[
{
"label": "Customer Name",
"name": "customer_name",
"id": "2a025cd5-7357-007f-ae2f-25ace762588e",
"type": "text",
"required": true,
"locked": false,
"validation_regex": "",
"allow_new_line": false,
"show_emoji_picker": false,
"default": "Sally"
},
{
"label": "Profile Picture",
"name": "profile_pic",
"id": "7877fb84-eb8a-d2c7-d939-77e6e9557d8f",
"type": "image",
"required": false,
"locked": false,
"responsive": true,
"resizable": true,
"default": {
"src": "https://cdn2.hubspotqa.net/hubfs/101140939/profile-pic-sally.svg",
"alt": "Sally Profile Picture",
"width": 100,
"height": 100,
"max_width": 100,
"max_height": 100
}
},
{
"label": "Testimonial",
"name": "testimonial",
"id": "c5524ece-1ab5-f92d-a5de-e2bf53199dfa",
"type": "richtext",
"required": false,
"locked": false,
"default": "<p>I’ve had nothing but wonderful experiences with this company.</p>"
}
]
Os valores para os seguintes campos corresponderão aos valores adicionados na etapa 3:
name
: o nome do campo.
label
: o rótulo do campo.
default
: o valor padrão do campo.
Exibir o arquivo module.html do módulo
O arquivo module.html
deve conter o HubL e o HTML que você escreveu anteriormente no editor de módulos do HubL + HTML.
Para tornar este código mais interessante e pronto para estilo CSS, copie e cole o seguinte código no arquivo:
<div class="testimonial">
<h1 class="testimonial__header"> {{ module.customer_name }} </h1>
<img class="testimonial__picture" src={{ module.profile_pic.src }} alt={{ module.profile_pic.alt }}>
{{ module.testimonial }}
</div>
Exibir o arquivo module.css do módulo
O arquivo module.css
deve estar vazio neste momento. Para adicionar estilo, copie e cole o seguinte código no arquivo:
.testimonial {
text-align: center;
}
.testimonial__header {
font-weight: bold;
}
.testimonial__picture {
display: block;
margin: auto;
}
Após adicionar o código, salve o arquivo.
As alterações locais para a sua conta da HubSpot
Depois de salvar as alterações locais, envie-as à sua conta da HubSpot.
- Acesse o terminal e verifique se você está no diretório correto.
- Execute o comando watch para enviar alterações para o HubSpot ao salvar:
hs watch <src> <destination>
.
hs watch my-theme my-theme
Visualizar suas alterações locais no HubSpot
- Na sua conta da HubSpot, vá em Marketing > Arquivos e Modelos > Ferramentas de design.
- Na barra lateral esquerda, acesse o tema que você criou, abra a pasta de módulos e selecione o módulo Depoimentos.
- Com o módulo aberto, você deve ver suas alterações nos painéis
module.html
e module.css
- No canto superior direito, clique em Visualizar. Uma nova guia será aberta para exibir a visualização do módulo.
Recapitulando este tutorial até agora, você:
- criou um módulo no HubSpot.
- Baixou esse módulo para o seu ambiente local.
- Fez alterações no HubL + HTML e CSS usando suas ferramentas de desenvolvimento local.
Na próxima parte deste tutorial, saiba como usar o módulo em um modelo.
Adicionar o módulo a um modelo
Para esta parte do tutorial, você trabalhará principalmente dentro das pastas modules
e templates
nos arquivos de tema locais.
Por sua definição mais básica, os módulos são áreas editáveis de modelos e páginas da HubSpot. Você pode inserir módulos em modelos no HubSpot usando o gerenciador de design, mas aqui usaremos o HubL para adicionar módulos a um modelo em seu ambiente local.
-
No editor de código, abra a pasta
templates
e, em seguida, abra o arquivo home.html
.
-
No arquivo
home.html
, acesse a dnd_section
final, que começa na linha 28. Você adicionará o seu novo módulo a esta seção.
-
Em
dnd_section
e acima dos outros dnd_modules
, copie e cole a seguinte tag de módulo HubL:
{% dnd_module
path= “../modules/Testimonial.module”,
offset=0,
width=4
%}
{% end_dnd_module %}
Essa tag HubL faz referência ao seu novo módulo pelo caminho relativo de arquivo. Para que o módulo se ajuste de forma uniforme aos outros dois módulos na dnd_section
, também atribui valores de width
e offset
ao módulo:
- O CMS da HubSpot usa um sistema de grade de 12 colunas; portanto, para espaçar este módulo de forma uniforme com os outros dois, você precisará atualizar a
dnd_section
de cada módulo para uma largura igual a 4
.
- Em seguida, o primeiro
dnd_module
no grupo (testimonial
) terá um deslocamento de 0
para posicioná-lo primeiro em lugar.
- O segundo
dnd_module
(linked_image
) terá um deslocamento de 4
para posicioná-lo em segundo lugar.
- O terceiro
dnd_module
(rich_text
) terá um deslocamento de 8
para posicioná-lo em terceiro lugar.
Depois de definir offset
e width
para cada dnd_module
, seu código será semelhante ao seguinte:
{% dnd_section
background_color="#f8fafc",
vertical_alignment="MIDDLE"
%}
{% dnd_module
path= “../modules/Testimonial.module”,
offset=0,
width=4
%}
{% end_dnd_module %}
{% dnd_module
path="@hubspot/linked_image",
img={
"alt": "Stock placeholder image with grayscale geometrical mountain landscape",
"loading": "lazy",
"max_height": 451,
"max_width": 605,
"size_type": "auto_custom_max",
"src": get_asset_url("../images/grayscale-mountain.png")
},
offset=4,
width=4
%}
{% end_dnd_module %}
{% dnd_module
path="@hubspot/rich_text",
html="<h2>Provide more details here.</h2><p>Use text and images to tell your company’s story. Explain what makes your product or service extraordinary.</p>"
offset=8,
width=4
%}
{% end_dnd_module %}
{% end_dnd_section %}
Visualizar suas alterações no HubSpot
- Se você não tiver mantido o comando
watch
em execução para rastrear seu trabalho automaticamente, execute hs watch <src> <dest>
. Certifique-se de que esse comando continue em execução ao concluir as próximas etapas.
- Na sua conta da HubSpot, abra o gerenciador de design (Marketing > Arquivos e modelos > Ferramentas de design.
- Na barra lateral esquerda do gerenciador de design, selecione o arquivo home.html.
- No canto superior direito, clique em Visualizar e selecione Visualização em tempo real com opções de exibição para abrir a visualização do modelo em uma nova janela.
- Na nova guia, confira a visualização do modelo, que deve conter o módulo de depoimentos recém-adicionado.
Personalizar o módulo no modelo localmente
Para tornar o modelo da página inicial mais interessante:
- Retorne ao editor de códigos e abra o arquivo
home.html
.
- Adicione os seguintes parâmetros à tag do módulo de depoimentos:
{% dnd_module
path='../modules/Testimonial.module',
customer_name = "Mary",
profile_pic = {
src: "{{
get_asset_url('../images/profile-pic-mary.svg') }}",
alt: "Mary Profile Picture"
},
testimonial = "Wow, what a product! I can't wait to recommend this to all my family and friends!",
offset=0,
width=4
%}
{% end_dnd_module %}
Os parâmetros acima substituem os valores padrão que você atribuiu originalmente aos três campos. Cada parâmetro usa o nome da variável do HubL que você atribuiu a cada campo anteriormente:
customer_name
: este parâmetro passa o nome Mary
para o campo de nome do cliente, substituindo o valor de Sally
.
profile_pic
**: **este parâmetro é um objeto que contém duas propriedades.
- A propriedade
src
usa a função do HubL get_asset_url
para recuperar o URL da nova imagem de perfil. Observe que o caminho do arquivo de imagem é relativo ao seu diretório de trabalho. Primeiro, você precisará adicionar essa imagem à pasta images
nos arquivos do tema local. Você pode encontrar a imagem na pasta images
nosarquivos do projeto concluído.
- A propriedade
alt
atribui o texto alternativo da imagem.
testimonial
: este parâmetro passa um novo texto para o campo de depoimentos.
Alternativamente, para o campo de rich text, você pode usar a sintaxe de bloco do HubL para escrever um grande bloco de HTML ou texto:
{% dnd_module
path='../modules/Testimonial.module',
customer_name = "Mary",
profile_pic = {
src: "{{
get_asset_url('../images/profile-pic-mary.svg') }}",
alt: "Mary Profile Picture"
},
offset=0,
width=4
%}
{% module_attribute "testimonial" %}
Wow, what a product! I can't wait to recommend this to all my family and friends!
{% end_module_attribute %}
{% end_dnd_module %}
Saiba mais sobre a sintaxe de bloco do módulo.
Se você manteve o comando watch
em execução no seu terminal, salve as alterações para enviá-las para o HubSpot. Você pode voltar ao gerenciador de design para visualizar o modelo.
Adicionar mais dois módulos de depoimentos ao modelo
Nesta etapa, você adicionará mais dois módulos de depoimentos ao modelo usando as mesmas etapas anteriores:
-
Acesse o editor de códigos e, em seguida, abra o arquivo
home.html
.
-
No módulo de depoimentos que você adicionou anteriormente, adicione outra instância do módulo, copiando e colando o código desse módulo. No novo módulo de depoimentos, especifique os seguintes detalhes usando as mesmas etapas acima:
- O nome do cliente é
Ollie
.
- O depoimento de Ollie diz:
I can't believe that I ever conducted business without the use of this product!
- Para a imagem de Ollie, adicione o caminho de arquivo relativo para o arquivo dentro da pasta
images
. Você pode obter a imagem nos arquivos do projeto concluído. Em seguida, dê à imagem de Ollie o atributo alt
de Ollie Profile Picture
.
- Para manter o espaçamento, defina
offset
como 4
e width
como 4
.
-
Abaixo do segundo módulo de depoimento, adicione um terceiro com os seguintes detalhes:
- O nome do cliente é
Erin
.
- O depoimento de Erin diz:
My business has nearly tripled since I began to use this product! Don't wait, start now!
- Para a imagem de Erin, adicione o caminho de arquivo relativo para o arquivo dentro da pasta
images
. Em seguida, dê à imagem de Erin o atributo alt
de Erin Profile Picture
.
- Para manter o espaçamento, defina
offset
como 8
e width
como 4
.
-
Salve suas alterações.
Se você manteve o comando watch
em execução no seu terminal, volte ao Gerenciador de design para visualizar as alterações no modelo. A visualização do modelo deve conter todos os três módulos de depoimentos.
Como etapa final, você preparará o tema para uso em uma página ativa, modificando o arquivo theme.json
.
Modificar o nome do tema
Se quiser modificar o nome padrão do tema, você pode fazer isso configurando os campos name
e label
no arquivo theme.json
.
// example theme.json
{
"name": "my_first_theme",
"label": "My first theme"
}
Depois de adicionar esse código, salve suas alterações para que o comando watch
envie suas alterações para o HubSpot.
Próximas etapas
Agora que você criou um módulo personalizado, adicionou-o ao modelo home.html
e, opcionalmente, personalizou o nome do tema, está pronto para criar uma página ativa a partir do tema.
Se quiser seguir um tutorial semelhante criado especificamente para temas, confira o tutorial Introdução aos temas a seguir. Caso contrário, você pode saber mais sobre como criar e personalizar páginas na Central de conhecimento da HubSpot.
Ou, se você quiser saber mais sobre os módulos, confira os seguintes guias:
Outros tutoriais