← back to Dw Theme Boost Fix
sections/blog-masonry.liquid
97 lines
<script
type="application/json"
data-section-type="static-blog-masonry"
data-section-id="{{ section.id }}"
>
</script>
{% assign emphasis_first_post = false %}
{% if section.settings.emphasis_first_post %}
{% assign emphasis_first_post = true %}
{% endif %}
<section>
<h1 class="page-title">{{ blog.title }}</h1>
{% render 'breadcrumbs' %}
<div class="blog-wrapper-masonry">
{% paginate blog.articles by section.settings.articles_per_page %}
{%- comment -%} DW infinite scroll: wrapper carries the next-page URL; dw-native-infinite.js appends on scroll (masonry sizer is skipped to avoid duplication). {%- endcomment -%}
<div
data-dw-infinite
data-dw-infinite-items=".blog-posts-masonry"
data-dw-infinite-next="{% if paginate.next %}{{ paginate.next.url }}{% endif %}"
data-dw-infinite-page="{{ paginate.current_page }}"
>
<div class="blog-posts-masonry masonry-grid" data-masonry-grid>
<div class="masonry-grid-sizer" data-masonry-sizer></div>
{% for article in blog.articles %}
{% assign is_emphasized = false %}
{%- if emphasis_first_post -%}
{% comment %}
Don't emphasize post if:
- is not first page
- if tags are active
- is not first in loop
{% endcomment %}
{%- if paginate.current_page == 1 and current_tags == blank and forloop.first -%}
{% assign is_emphasized = true %}
{%- endif -%}
{%- endif -%}
{%
render 'section-blog-post-masonry',
article: article,
is_emphasized: is_emphasized
%}
{% else %}
<div class="blog-post-masonry masonry-grid-item" data-masonry-item>
<span class="empty">
{{ 'blogs.blog.empty' | t }}
</span>
</div>
{% endfor %}
</div>
{% if paginate.previous or paginate.next %}
<div data-dw-infinite-pager>
{% render 'pagination', paginate: paginate %}
</div>
{% endif %}
</div>
{% endpaginate %}
</div>
</section>
<script src="{{ 'dw-native-infinite.js' | asset_url }}" defer></script>
{% schema %}
{
"name": "Blog",
"settings": [
{
"type": "range",
"id": "articles_per_page",
"label": "Posts per page",
"min": 3,
"max": 12,
"step": 3,
"default": 9
},
{
"type": "checkbox",
"id": "emphasis_first_post",
"label": "Emphasize first post"
}
]
}
{% endschema %}