Los módulos personalizados son componentes reutilizables que puedes utilizar en tu sitio web. Constrúyelos siguiendo las mejores prácticas de velocidad, experiencia de usuario y accesibilidad.
module.css
y module.js
de ese módulo una vez. Por opción predeterminada, module.css
y module.js
no se cargan de forma asíncrona, pero puedes cambiar esto incluyendo css_render_options y js_render_options en el meta.json del módulo.
Los módulos se pueden construir dentro del administrador de diseño o localmente usando la CLI de HubSpot. En el administrador de diseño, los archivos de los módulos se muestran en un editor de varios paneles.
module.css
para agregar CSS a un módulo.
En general, module.css
soporta un subconjunto muy limitado de HubL. Sin embargo, puedes utilizar module_asset_url("my-image.png")
para las imágenes agregadas como materiales vinculados al módulo. Esto permite vincular materiales como imágenes, empaquetados con el propio módulo. Por ejemplo:
module.htm
l que se correspondan con las clases CSS de tu archivo module.css
.
Por ejemplo, puedes tener un módulo de imagen y texto. Quieres que los creadores de contenidos puedan colocar la imagen a la derecha o a la izquierda del texto en función de un campo de elección. Para ello, puedes configurar tus archivos module.html
y module.css
de la siguiente manera:
require_css
son la mejor opción.
Para dar a los creadores de contenido un control directo sobre propiedades específicas sin usar clases, puedes agregar estilos al archivo module.html
dentro de las etiquetas require_css
. Por ejemplo:
module.html
puede renderizar HubL, puedes utilizar los valores de los campos del módulo como variables CSS. Cuando un creador de contenido actualiza el campo en el editor de la página, el CSS se actualizará para coincidir. Este bloque mueve las etiquetas <style>
dentro de <head>
de tu página dentro de la sentencia standard_header_includes
.
También puedes establecer que el CSS se aplique sólo a la instancia del módulo envolviendo el CSS con etiquetas scope_css
. Por ejemplo, podrías actualizar el código del módulo anterior de la siguiente manera:
require_css
.
require_css
es una función de HubL que puedes agregar a module.html y que indica a HubSpot que un módulo o plantilla en particular requiere un archivo CSS concreto para mostrarse. Se agrega una etiqueta de enlace que apunta al archivo css a la página <head>
dentro de standard_header_includes
.
La función require_css
sólo cargará ese archivo CSS una vez, independientemente de las veces que ese mismo archivo sea requerido por los módulos y plantillas de una página concreta. Esto lo hace ideal para situaciones en las que los estilos pueden ser compartidos a través de múltiples módulos, pero donde agregar el CSS directamente a las hojas de estilo principales utilizadas en cada página de tu sitio puede no tener sentido.
require_css
y los archivos CSS enlazados cumplen el mismo propósito, pero require_css
puede utilizarse de forma condicional en función de los valores de los campos. Así se evita cargar un código innecesario.
module.js
para agregar JavaScript a un módulo.
Al igual que el archivo module.css
, el archivo module.js
no soporta HubL.
class="yourClassName"
, todos los elementos admiten data-your-attribute="yourValue"
.
require_js
para proporcionar variables a las que puedas acceder desde el script de la plantilla.
require_js
es una función de HubL que indica a HubSpot que un módulo o plantilla en particular requiere un archivo JavaScript concreto para cargarse correctamente. La función toma dos parámetros: la ruta del archivo y la ubicación a la que se debe agregar el archivo (“encabezado” o “pie de página”).
En un módulo require_js
sólo se puede agregar al module.html. El archivo JavaScript al que se hace referencia en la sentencia require_js
sólo se cargará una vez por página, independientemente del número de veces que lo requieran los módulos y plantillas dentro de la página. Esto reduce el número de peticiones HTTP y evita la duplicación de código.
Algunas situaciones en las que esto resulta útil:
require_js
para compartir ese script entre módulos.require_js
, puedes asociar el JavaScript con tu módulo.require_js
y los archivos javascript enlazados sirven para el mismo propósito, pero require_js
puede hacerse condicionalmente en base a los valores de los campos. Esto evita que se cargue un código innecesario. También tienes la opción adicional de cargar JavaScript en el encabezado, si lo necesitas.
require_js
coloca JavaScript es el “pie de página”. Más información sobre la optimización del rendimiento.