> ## Documentation Index
> Fetch the complete documentation index at: https://developers.hubspot.es/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Empezar a usar módulos

> Crea un componente reutilizable en tus páginas y plantillas llamado módulo personalizado. Aprenderás sobre los campos y su uso con HubL.

'Crea un componente reutilizable en tus páginas y plantillas llamado módulo personalizado. Aprenderás sobre los campos y su uso con HubL.';

'[https://cdn2.hubspot.net/hubfs/327485/Module%20Editor-1-1.png](https://cdn2.hubspot.net/hubfs/327485/Module%20Editor-1-1.png)';

En este tutorial, utilizarás el tema "HubSpot CMS boilerplate" para aprender a crear un módulo y conocer cómo puedes utilizarlo en plantillas y páginas como parte de un tema. Al final del tutorial, habrás creado un módulo de testimonios de clientes que incluye un campo de texto, campo de imagen y un campo de texto enriquecido.

<Alert type="tip">
  Si esta es tu primera experiencia con el desarrollo del CMS de HubSpot te recomendamos:

  <CTA id="28bfd0e9-ec05-48a5-b069-ce20015f54ac" label="Inicio rápido del desarrollo del CMS de HubSpot" />
</Alert>

<Alert type="info" titleText="Nota:">
  Si estás buscando desarrollar un módulo para usarlo en un tema que deseas publicar en el mercado de plantillas de HubSpot, echa un vistazo a los [Requisitos del módulo del mercado de plantillas](https://developers.hubspot.com/docs).
</Alert>

## Antes de comenzar

Antes de comenzar con este tutorial:

* Configurar un [entorno de pruebas para desarrolladores del CMS de HubSpot](https://offers.hubspot.com/free-cms-developer-sandbox). Puedes utilizar tu cuenta existente, pero el entorno de prueba te permitirá desarrollar sin afectar el contenido de tu cuenta principal.
* Instala [Node.js](https://nodejs.org/en/), lo que habilita las herramientas de desarrollo local de HubSpot. Se admiten a partir de la versión 10 o superiores.

Si quieres avanzar, puedes ver de forma preliminar los [archivos del proyecto](https://github.com/HubSpot/cms-modules-getting-started/tree/3b9159334f8c6204c7d2d34d8945d71b6ba402ea) terminado. Dado que el código del tema "CMS boilerplate" puede cambiar con el tiempo, solo se incluyen los archivos más importantes que los desarrolladores tendrán que crear o editar durante el tutorial. Estos archivos incluyen:

1. **Testimonial.module:** la carpeta que contiene los archivos que componen el módulo personalizado que crearás como parte del tutorial.
2. **homepage.html:** la plantilla que se editará para incluir el módulo personalizado.
3. **images:** la carpeta que contiene las imágenes de perfil que utilizarás en el módulo.

## Configura tu entorno de desarrollo local

Durante este tutorial, desarrollarás el módulo de forma local. Para interactuar con HubSpot en tu interfaz de línea de comandos, tendrás que instalar la [CLI de HubSpot](/developer-tooling/local-development/hubspot-cli/install-the-cli) y configurarla para acceder a tu cuenta.

* En el terminal, ejecuta el siguiente comando para instalar la CLI globalmente. Para instalar la CLI solo en tu directorio actual, ejecuta `npm install @hubspot/cli`.

```shell theme={null}
npm install -g @hubspot/cli
```

* En el directorio donde almacenarás tus archivos de tema, autentica tu cuenta de HubSpot para que puedas interactuar con ella a través de la CLI.

```shell theme={null}
hs account auth
```

* Presiona **Introducir** para abrir la página de la clave de acceso personal en tu navegador.
* Selecciona la **cuenta** en la que deseas realizar el proceso y haz clic en **Continuar con esta cuenta**. Se te redirigirá a la página de la clave de acceso personal de la cuenta.
* Junto a *Clave de acceso personal*, haz clic en **Mostrar** para revelar tu clave. Luego, haz clic en **Copiar** para copiarlo en el portapapeles.
* Pega la clave copiada en el terminal y presiona **Introducir**.
* Ingresa un **nombre** único para la cuenta. Este nombre solo será visto y utilizado por ti cuando ejecutes comandos. Luego, presiona **Introducir**. Para conectar las herramientas de desarrollo local a tu cuenta:

Después verás un mensaje de éxito confirmando que se creó el archivo `~/.hscli/config.yml`.

## Agrega la plantilla del CMS boilerplate a tu cuenta

* Ejecuta el siguiente comando para crear un nuevo tema llamado `my-theme`. Se creará entonces una carpeta de temas con el nombre `my-theme` en tu directorio de trabajo que contendrá los materiales de la plantilla.

```shell theme={null}
hs create website-theme my-theme
```

* Sube los archivos a tu cuenta.

```shell theme={null}
hs upload <src> <destination>
```

| Parámetro | Descripción                                                                           |
| --------- | ------------------------------------------------------------------------------------- |
|           | La ruta de acceso a tus archivos locales, relativa a tu directorio de trabajo actual. |
|           | La ruta de destino en tu cuenta de HubSpot. Puede ser una nueva carpeta.              |

Por ejemplo, `hs upload my-theme my-new-theme` subiría la carpeta `my-theme` de tu dispositivo a una carpeta `my-new-theme` en HubSpot

<Alert type="info">
  Por opción predeterminada, HubSpot lo subirá a la cuenta predeterminada en tu archivo `hubspot.config,yml`. Sin embargo, también puedes especificar una cuenta incluyendo el indicador `--account=<accountNameOrId>` en el comando. Por ejemplo, `hs upload --portal=mainProd`.

  Obtén más información sobre la [referencia de comandos de la CLI](/developer-tooling/local-development/hubspot-cli/install-the-cli).
</Alert>

## Crear un módulo en HubSpot

Con la plantilla de CMS boilerplate en tu entorno local, ahora crearás un nuevo módulo para el tema.

<Alert type="info">
  Para los fines de este tutorial, crearás el módulo en HubSpot y luego lo introducirás en el tema utilizando la CLI. Sin embargo, también puedes crear módulos desde cero localmente usando el comando [hs create module](/developer-tooling/local-development/hubspot-cli/install-the-cli).
</Alert>

* Inicia sesión en tu cuenta de HubSpot, luego dirígete al administrador de diseño en **Marketing > Archivos y plantillas > Administrador de diseño**.

* En la barra lateral izquierda del administrador de diseño, abre la **carpeta del tema** que acabas de cargar.

* En la carpeta del tema, abre la **carpeta de módulos**.

* En la parte superior izquierda, haz clic en **Archivo > Nuevo archivo** para crear un nuevo módulo en esta carpeta.

* En el cuadro de diálogo, haz clic en el **menú desplegable** y luego selecciona **Módulo** y haz clic en **Siguiente**.

  ![new-module-dropdown-menu0](https://www.hubspot.es/hubfs/Knowledge_Base_2021/Developer/new-module-dropdown-menu0.png)

* Selecciona la casilla de verificación **Páginas** para que el módulo esté disponible para el sitio web y las landing pages.

* Nombra el módulo **Testimonios** y luego haz clic en **Crear**.

### Agregar campos al módulo

A continuación, agregarás tres campos al módulo:

* Un campo de texto para almacenar el nombre del cliente que da el testimonio.
* Un campo de imagen que almacenará la foto de perfil del cliente.
* Un campo de texto enriquecido que almacenará el testimonio del cliente.

#### Agregar el campo de texto para el nombre del cliente

* En la barra lateral derecha del editor de módulos, haz clic en el menú desplegable **Agregar campo** y luego selecciona **Texto**.

  ![testimonial-module-add-field](https://www.hubspot.es/hubfs/Knowledge_Base_2023/testimonial-module-add-field.png)

* En la barra lateral derecha, haz clic en el **ícono del lápiz** en la esquina superior derecha para nombrar el campo. Para este tutorial, escribe el **Nombre del cliente**. Verás que el nombre de la variable HubL cambia a **customer\_name**.

* Establece el **Texto predeterminado** como **Sally**.

![Ejemplo de campo de texto](https://cdn2.hubspot.net/hubfs/53/Text-Field-3.png)

* En la barra lateral derecha, haz clic en el ícono **breadcrumb** para volver al menú principal del módulo.

![module-breadcrumb-icon0](https://www.hubspot.es/hubfs/Knowledge_Base_2021/Developer/module-breadcrumb-icon0.png)

#### Agregar el campo de imagen para la imagen de perfil del cliente

* Agrega otro campo utilizando el mismo método, esta vez seleccionando el tipo de campo **Imagen**.
* Etiqueta el campo de la imagen como **Imagen de perfil** y luego define el **nombre de la variable de HubL** como **profile\_pic**.
* En **Imagen predeterminada**, selecciona la imagen de perfil proporcionada para Sally en la carpeta de **images** de los [archivos completados del proyecto](https://github.com/HubSpot/cms-modules-getting-started/tree/3b9159334f8c6204c7d2d34d8945d71b6ba402ea/images).
* Establece el **Texto alternativo** para la **Imagen de perfil del cliente**.

![getting-started-with-modules-profile-pic](https://www.hubspot.es/hubfs/Knowledge_Base_2023/getting-started-with-modules-profile-pic.png)

#### Agrega el campo de texto enriquecido para el testimonio de Sally

* Agrega otro campo utilizando el mismo método, esta vez seleccionando el tipo de campo de **texto enriquecido**.
* Etiqueta al campo de texto enriquecido como **Testimonio**.
* Haz clic en el cuadro **Texto enriquecido predeterminado** y luego escribe "Solo he tenido experiencias maravillosas con esta empresa.""

![Ejemplo de campo de texto enriquecido](https://cdn2.hubspot.net/hubfs/53/Rich-Text-Field-5--.png)

Hasta ahora, has agregado datos en varios campos del módulo. En este punto, sin embargo, el módulo no contiene ningún HTML para renderizar esos datos. En el editor de módulos, se refleja en el estado vacío de la sección `module.html`. ![module-html-empty0](https://www.hubspot.es/hubfs/Knowledge_Base_2021/Developer/module-html-empty0.png)

A continuación, agregarás HubL a `module.html` para mostrar los datos del campo.

### Agregar HubL para mostrar los datos de los campos

Para mostrar los datos de los campos creados anteriormente, agrega el siguiente HubL al panel `module.html`:

```hubl theme={null}
<!-- module.html -->
{{module.customer_name}}
<img src={{module.profile_pic.src}} alt="{{module.profile_pic.alt}}">
{{module.testimonial}}
```

Los tokens HubL anteriores usan notación de puntos para acceder a los datos de cada campo. En este caso, debido a que queremos extraer datos de los campos del módulo, cada token comienza con `module`, seguido por el nombre de la variable de HubL del campo. Puedes usar la notación de puntos para acceder a propiedades específicas de un campo, que puedes ver en los tokens `profile_pic` en la línea 3 que aparece arriba.

* Con el HubL agregado a tu módulo, haz clic en **Vista preliminar** en la parte superior derecha para ver el aspecto del módulo hasta el momento.

![design-manager-previewer](https://www.hubspot.es/hubfs/Knowledge_Base_2023/design-manager-previewer.png)

* Luego, en la parte superior derecha, haz clic en **Publicar cambios**.

Después de crear y publicar el módulo en HubSpot, ahora usarás la CLI para llevar el módulo a tu entorno local para que puedas ver su contenido y realizar más cambios.

## Ver y modificar el módulo localmente

Para ver el módulo localmente, primero deberás bajarlo a tu tema local:

* En el terminal, ejecuta el siguiente comando: `hs fetch <hs_src> <destination>`:

  * `<hs_src>` representa la ruta del módulo en HubSpot. Para obtener la ruta del archivo, puedes hacer clic con el botón derecho sobre el módulo en la barra lateral izquierda del administrador de diseño y luego seleccionar **Copiar ruta**.

    ![design-manager-copy-path0](https://www.hubspot.es/hubfs/Knowledge_Base_2021/Developer/design-manager-copy-path0.png)

  * `<destination>` representa la ruta del directorio local que contiene tu tema. Si se omite, el comando se dirigirá por opción predeterminada al directorio de trabajo actual.

Por ejemplo, si ya estás en el directorio de trabajo, el comando fetch puede tener un aspecto similar al siguiente:

```shell theme={null}
hs fetch my-theme/modules/testimonial.module
```

### Abre la carpeta del módulo en tu entorno local

En tu editor de código preferido, navega hasta la carpeta del módulo que acabas de sacar de tu cuenta de HubSpot. Dentro de tu carpeta de módulos, verás cinco archivos diferentes:

| Parámetro     | Descripción                                                   |
| ------------- | ------------------------------------------------------------- |
| `fields.json` | Un objeto JSON que contiene los campos de tu módulo.          |
| `meta.json`   | Un objeto JSON que contiene meta información sobre tu módulo. |
| `module.css`  | El archivo CSS que da estilo a tu módulo.                     |
| `module.html` | El HTML y HubL para tu módulo.                                |
| `module.js`   | El JavaScript para tu módulo.                                 |

Puedes encontrar información más detallada en nuestra documentación sobre la [estructura de archivos del módulo](https://developers.hubspot.com/docs), especialmente en lo que respecta a los archivos `fields.json` y `meta.json`. En este tutorial, nos centraremos en los archivos `fields.json`, `module.css` y `module.html` y en cómo se generan, se descargan y se suben en el editor de módulos en el administrador de diseño.

### Ver el archivo fields.json del módulo

Abre el archivo `fields.json` del módulo. Aparte de algunos de los números de `id`, el atributo `src` del campo de la imagen, y el orden de los campos, el archivo debe contener un objeto JSON similar al siguiente:

```json theme={null}
//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>"
  }
]
```

Los valores de los siguientes campos coincidirán con los valores que agregaste en el paso 3:

* `name`: el nombre del campo.
* `label`: la etiqueta del campo.
* `default`: el valor predeterminado del campo.

### Ver el archivo module.html del módulo

El archivo `module.html` debe contener el HubL y el HTML que escribiste en el editor de módulos HubL + HTML anteriormente.

Para hacer este código más interesante y listo para el estilo CSS, copia y pega el siguiente código en el archivo:

```hubl theme={null}
<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>
```

<Alert type="info">
  Al escribir el HTML como se indica arriba se utiliza la [estructura de clases BEM](https://css-tricks.com/bem-101/) de acuerdo con la [guía de estilo](https://github.com/HubSpot/cms-theme-boilerplate/blob/main/STYLEGUIDE.md#css-code-formatting) del tema "HubSpot CMS boilerplate".
</Alert>

### Ver el archivo module.css del módulo

El archivo `module.css` debería estar vacío en este punto. Para agregar el estilo, copia y pega el siguiente código en el archivo:

```css theme={null}
.testimonial {
  text-align: center;
}

.testimonial__header {
  font-weight: bold;
}

.testimonial__picture {
  display: block;
  margin: auto;
}
```

Después de agregar el código, guarda el archivo.

## Mover cambios locales a tu cuenta de HubSpot

Después de guardar los cambios locales, devuélvelos a tu cuenta de HubSpot.

* Dirígete a tu terminal y asegúrate de que estás en el directorio correcto.
* Ejecuta el comando "watch" para enviar los cambios a HubSpot al guardar: `hs watch <src> <destination>`.

```shell theme={null}
hs watch my-theme my-theme
```

## Muestra preliminarmente los cambios locales en HubSpot

* En tu cuenta de HubSpot, dirígete a **Marketing** > **Archivos y plantillas** > **Administrador de diseño**.
* En la barra lateral izquierda, navega hasta el **tema** que has creado, luego abre la carpeta de **módulos** y selecciona el módulo de **Testimonios**.
* Con el módulo abierto, ahora deberías ver tus cambios en los paneles `module.html` y `module.css`.
* En la parte superior derecha, haz clic en **Vista preliminar**. Se abrirá una nueva pestaña para mostrar la vista preliminar del módulo.

![Ejemplo de vista preliminar del módulo](https://cdn2.hubspot.net/hubfs/53/Module-Preview-7.png)

Para recapitular en este tutorial, hasta ahora:

* Creaste un módulo en HubSpot.
* Bajaste ese módulo a tu entorno local.
* Realizaste cambios en el HubL + HTML y CSS utilizando tus herramientas de desarrollo locales.

En la siguiente parte de este tutorial, aprende a utilizar el módulo en una plantilla.

## Agregar el módulo a una plantilla

Para esta parte del tutorial, trabajarás principalmente con las carpetas de `modules` y `templates` dentro de los archivos de temas locales. ![theme-folder-structure-getting-started-with-modules0](https://www.hubspot.es/hubfs/Knowledge_Base_2021/Developer/theme-folder-structure-getting-started-with-modules0.png)

Por su definición más básica, los módulos son áreas editables de las plantillas y páginas de HubSpot. Puedes insertar módulos en plantillas en HubSpot utilizando el administrador de diseño, pero aquí vas a utilizar HubL para agregar el módulo a la plantilla en tu entorno local.

* En tu editor de código, abre la carpeta `templates` y luego abre el archivo `home.html`.

* En el archivo `home.html`, ve hasta la `dnd_section` final, que comienza alrededor de la línea 28. En esta sección agregarás tu nuevo módulo.

  ![home-html-add-testimonial-module-to-section0](https://www.hubspot.es/hubfs/Knowledge_Base_2021/Developer/home-html-add-testimonial-module-to-section0.png)

* Dentro de esta `dnd_section` y encima de los otros `dnd_modules`, copia y pega la siguiente etiqueta de módulo HubL:

```hubl theme={null}
{% dnd_module
 path= “../modules/Testimonial.module”,
 offset=0,
 width=4
%}
{% end_dnd_module %}
```

Esta etiqueta HubL hace referencia a tu nuevo módulo por su ruta de archivo relativa. Para lograr que el módulo encaje uniformemente con los otros dos módulos en la sección `dnd_section`, también asigna `width` y `offset` del módulo:

* El CMS de HubSpot utiliza un sistema de [cuadrícula de 12 columnas](https://developers.hubspot.com/docs#columns), por lo que para espaciar este módulo de manera uniforme con los otros dos, deberás actualizar cada módulo en la `dnd_section` para tener una anchura de `4`.
* Entonces, el primer `dnd_module` del grupo (`testimonial`) tendrá un desplazamiento de `0` para posicionarlo en primer lugar.
* El segundo `dnd_module` (`linked_image`) tendrá un desplazamiento de `4` para posicionarlo en segundo lugar.
* El segundo `dnd_module` (`rich_text`) tendrá un desplazamiento de `8` para posicionarlo en segundo lugar.

Tras los ajustes del `offset` y `width` de cada `dnd_module`, tu código será similar al siguiente:

```hubl theme={null}
{% 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 %}
```

<Alert type="info">
  Cuando se agrega un módulo a un área de arrastrar y soltar, la etiqueta del módulo <u>no</u> requiere un nombre único. Sin embargo, cuando se agrega un módulo a un archivo HTML fuera de las áreas de arrastrar y soltar, debes asignar al módulo un nombre único. También se utilizaría una sintaxis ligeramente diferente, por ejemplo:

  `{% module "testimonial_one" path="../modules/Testimonial.module" %}`

  Puedes aprender más sobre el [uso de módulos en las plantillas](/cms/reference/modules/using-modules-in-templates).
</Alert>

## Muestra preliminarmente tus cambios en HubSpot

* Si no has ejecutado el comando `watch` para hacer un seguimiento automático de tu trabajo guardado, ejecuta `hs watch <src> <dest>`. Asegúrate de que este comando se siga ejecutando, mientras completas los siguientes pasos.
* En tu cuenta de HubSpot, abre administrador de diseño (**Marketing** > **Archivos y plantillas** > **Administrador de diseño**.
* En la barra lateral izquierda del administrador de diseño, selecciona el archivo **home.html**.
* En la parte superior derecha, haz clic en **Vista preliminar** y luego selecciona **Vista preliminar con opciones de visualización** para abrir la vista preliminar de la plantilla en una nueva ventana.

![Ejemplo de vista preliminar](https://cdn2.hubspot.net/hubfs/53/Live-Preview-10.png)

* En la nueva pestaña, consulta la vista preliminar de la plantilla que debería contener tu módulo de testimonios recién agregado.

![testimonial-module-added-to-theme](https://www.hubspot.es/hubfs/Knowledge_Base_2023/testimonial-module-added-to-theme.png)

## Personalizar el módulo en la plantilla localmente

Para hacer más interesante la plantilla de la página de inicio:

* Vuelve a tu editor de código y luego abre el archivo `home.html`.
* Agrega los siguientes parámetros a la etiqueta del módulo de testimonios:

```hubl theme={null}
{% 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 %}
```

Los parámetros anteriores anulan los valores predeterminados que asignaste originalmente a los tres campos. Cada parámetro utiliza el nombre de la variable HubL que asignaste a cada campo previamente:

* `customer_name`**:** este parámetro pasa el nombre `Mary` al campo del nombre del cliente y sobrescribe el valor de `Sally`.
* `profile_pic`**:** este parámetro es un objeto que contiene dos propiedades:
  * La propiedad `src` utiliza la función HubL `get_asset_url` para obtener la URL de la nueva foto de perfil. Ten en cuenta que la ruta del archivo de la imagen es relativa a tu directorio de trabajo. Primero deberás agregar esta imagen a la carpeta `images` en tus archivos de tema locales. Puedes encontrar la imagen en la carpeta `images` de los [archivos de proyecto completados.](https://github.com/HubSpot/cms-modules-getting-started/tree/3b9159334f8c6204c7d2d34d8945d71b6ba402ea/images)
  * La propiedad `alt` asigna el texto alternativo de la imagen.
* `testimonial`**:** este parámetro pasa un nuevo texto al campo de testimonio.

Alternativamente, para el campo de texto enriquecido, podrías utilizar la sintaxis de bloque de HubL para escribir un gran bloque de HTML o texto:

```hubl theme={null}
{% 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 %}
```

Más información sobre [la sintaxis del bloque de módulos](/cms/reference/modules/using-modules-in-templates).

Si has mantenido el comando `watch` en ejecución en tu terminal, al guardar los cambios los enviará a HubSpot. Puedes volver por el administrador de diseño para obtener una vista preliminar de la plantilla.

![Módulo de Mary en plantillas](https://cdn2.hubspot.net/hubfs/53/Mary-Module-in-Template-12.png)

## Agregar dos módulos de testimonios más a la plantilla

En este paso, agregarás otros dos módulos de testimonios a la plantilla siguiendo los mismos pasos que antes:

* Ve al editor de código y luego abre el archivo `home.html`.

* Debajo del módulo de testimonios que agregaste anteriormente, agrega otra instancia del módulo copiando y pegando el código de ese módulo. En el nuevo módulo de testimonios, especifica los siguientes detalles siguiendo los mismos pasos anteriores:
  * El nombre del cliente es `Ollie`.
  * El testimonio de Ollie dice: `I can't believe that I ever conducted business without the use of this product!`
  * Para la imagen de Ollie, agrega la ruta relativa del archivo dentro de la carpeta `images`. Puedes obtener la imagen de los archivos de [proyecto terminados](https://github.com/HubSpot/cms-modules-getting-started/tree/3b9159334f8c6204c7d2d34d8945d71b6ba402ea). Entonces dale a la imagen de Ollie el atributo `alt` de `Ollie Profile Picture`.
  * Para mantener el espaciado, fija `offset` en `4` y `width` en `4`.

* Debajo del segundo módulo de testimonios, agrega un tercero con los siguientes datos:

  * El nombre del cliente es `Erin`.
  * El testimonio de Erin dice: `My business has nearly tripled since I began to use this product! Don't wait, start now!`
  * Para la imagen de Erin, agrega la ruta relativa del archivo dentro de la carpeta `images`. Luego dale a la imagen de Erin el atributo `alt` de `Erin Profile Picture`.
  * Para mantener el espaciado, fija `offset` en `8` y `width` en `4`.

* Guarda los cambios.

Si has mantenido el comando `watch` en ejecución en tu terminal, puedes volver al administrador de diseño para previsualizar tus cambios en la plantilla. La vista preliminar de la plantilla debería contener ahora los tres módulos de testimonios.

![testimonial-modules-added-to-theme](https://www.hubspot.es/hubfs/Knowledge_Base_2023/testimonial-modules-added-to-theme.png)

Como paso final, prepararás el tema para usarlo en una página activa modificando el archivo `theme.json`.

## Modificar el nombre del tema

Si quieres modificar el nombre predeterminado del tema, puedes hacerlo configurando los campos `name` y `label` en el archivo `theme.json`.

```json theme={null}
// example theme.json

{
  "name": "my_first_theme",
  "label": "My first theme"
}
```

Después de agregar ese código, guarda los cambios para que el comando `watch` los envíe a HubSpot.

## Próximos pasos

Ahora que creaste un módulo personalizado, lo agregaste a la plantilla `home.html` y, opcionalmente, personalizaste el nombre del tema, puedes para crear una página activa desde el tema.

Si quieres seguir un tutorial similar que se centra en temas, echa un vistazo al tutorial de [Introducción a los temas](/cms/start-building/building-blocks/themes/getting-started) a continuación. De lo contrario, puedes obtener más información sobre cómo [crear y personalizar páginas](https://knowledge.hubspot.com/es/website-and-landing-pages/create-and-customize-pages) en la base de conocimientos de HubSpot.

O, si deseas obtener más información sobre los módulos, consulta las siguientes guías de módulos:

* [Configurar un módulo](/cms/reference/modules/configuration)
* [Usar módulos en plantillas](/cms/reference/modules/using-modules-in-templates)
* [Módulos predeterminados](/cms/reference/modules/default-modules)

## Otros tutoriales

* [Primeros pasos para usar temas](/cms/start-building/building-blocks/themes/getting-started)
* [Comenzar a usar las funciones sin servidor](https://developers.hubspot.com/docs)
* [Creación de un proceso de desarrollo eficiente](/cms/start-building/introduction/developer-environment/creating-an-efficient-development-workflow)
* [Empezar con la accesibilidad](/cms/best-practices/improve-existing-sites/accessibility)
* [Cómo utilizar los frameworks de JavaScript en CMS Hub](/cms/start-building/introduction/developer-environment/js-frameworks)
* [Cómo usar componentes web en módulos personalizados](https://developers.hubspot.com/blog/use-web-components-in-hubspot-cms-development)
* [Cómo crear un módulo basado en componentes web de bloques de código](https://developers.hubspot.com/blog/how-to-build-a-code-block-web-component)
