The code snippet below lists related posts based on the current post tags used. The HubSpot developer docs has a code example using a Javascript formatter but I was unable to get this to resize the featured image. So I created the code below to use a HubL macro instead.
HubSpot Module HTML + HubL
{% macro blog_post_formatter(post) %} <div class="recent-post"> <div class="post-image"> <a href="{{ post.absolute_url }}" style="opacity:1"> <picture> <source srcset="{{ resize_image_url(post.featured_image, 800) }}" media="(min-width: 500px)"> <img src="{{ resize_image_url(post.featured_image, 400) }}" alt="{{ post.featured_image_alt_text }}" loading="lazy" > </picture> </a> </div> <div class="recent-post-content"> <div class="same-height"> <div class="post-title"><a href="{{ post.absolute_url }}">{{ post.name }}</a></div> <div class="tags"> {% for topic in post.topic_list %} {% if loop.first %} <a href="https://bitlyft.com/resources/tag/{{ topic.slug }}">{{ topic.label }}</a> {% endif %} {% endfor %} </div> <div class="truncate">{{ post.post_summary|striptags|truncatehtml(200) }}</div> </div> <div class="post-date">{{ post.publish_date|format_date('M/d/yyyy') }}</div> </div> </div> {% endmacro %} <div class="recent-post-sec"> <div class="container"> <div class="title text-center"> <h2>{{ module.title }}</h2> </div> <div class="recent-post-wrapper flex row-wrap"> {% set post_tags = content.tagList|join(", ") %} {% related_blog_posts limit=3, tags="{{ post_tags }}" post_formatter="blog_post_formatter" %} </div> </div> </div>