{{ post.title }}
{% if post.metadata.get('description') or post.excerpt %}{{ post.metadata.get('description') | default(post.excerpt) | truncate(180) }}
{% endif %} {% if post.tags %} {% endif %}{% extends "base.html" %} {# Blog List Template Used for blog section indexes. Displays blog posts in reverse chronological order with featured posts, excerpts, and pagination. Usage: Set `type: blog` in section _index.md Context variables: - section: Section object with blog posts - posts: List of blog post pages (may be paginated) - subsections: Blog categories/archives - total_pages: Total pagination pages - current_page: Current page number #} {% from 'partials/navigation-components.html' import breadcrumbs, pagination %} {% from 'partials/content-components.html' import tag_list %} {# Defensive defaults for pagination variables (safe fallback if not provided) #} {% set total_pages = total_pages | default(1) %} {% set current_page = current_page | default(1) %} {% set total_posts = total_posts | default(posts | length if posts else 0) %} {% set base_url = base_url | default(section.url if section else '/blog/') %} {% block content %} {# Action Bar: Breadcrumbs + Share #} {% include 'partials/action-bar.html' with context %}
{{ section.metadata.get('description', '') }}
{% elif description %}{{ description }}
{% endif %} {% if total_pages %}Showing {{ posts | length }} of {{ total_posts }} posts {% if current_page > 1 %}(Page {{ current_page }} of {{ total_pages }}){% endif %}
{% endif %}{{ post.metadata.get('description') | default(post.excerpt) | truncate(180) }}
{% endif %} {% if post.tags %} {% endif %}{{ post.metadata.get('description') | default(post.excerpt) | truncate(200) }}
{% endif %} {% if post.tags %} {% endif %} Read more →{{ subsection.metadata.get('description', '') }}
{% endif %} {% if subsection.regular_pages %} {# Count only non-index pages #} {% set index_url = subsection.index_page.url if subsection.index_page else '' %} {% set content_pages = subsection.regular_pages | rejectattr('url', 'equalto', index_url) | list %} {% if content_pages %} {% endif %} {% endif %}No blog posts yet. Check back soon!