{{ p.title }}
{% if p.description %}{{ p.description | truncate(120) }}
{% end %} {% if p.date %} {% end %}{% extends "base.html" %}
{#
================================================================================
Blog Post Single Page Template (Kida-Native)
================================================================================
Individual blog post page optimized for reading.
FEATURES:
- Featured image support
- Author information and bio
- Reading time estimation
- Social sharing buttons
- Related posts section
- Comments integration point
- Table of contents sidebar
KIDA FEATURES USED:
- {% let %} for template-scoped variables
- Optional chaining (?.) for null-safe access
- Null coalescing (??) for smart defaults
- {% def %} for reusable components
- {% match %} for conditional rendering
NOTE:
Uses page.word_count and page.reading_time computed properties
instead of filters for better performance (cached on first access).
USAGE:
Set `type: blog` in frontmatter or use cascade from section
================================================================================
#}
{% from 'partials/navigation-components.html' import breadcrumbs, page_navigation %}
{% from 'partials/components/tags.html' import tag_list %}
{# =============================================================================
RELATED POST CARD COMPONENT - uses PostView for normalized access
============================================================================= #}
{% def related_card(post) %}
{% let p = post | post_view %}
{{ p.description | truncate(120) }}
{{ p.title }}
{% if p.description %}
{{ post_desc }}
{% end %} {# Post Metadata #} {# Tags #} {% if page_tags | length > 0 %} {% end %}
{{ t('blog.comments', default='Comments') }}
{{ t('blog.comments_placeholder', default='Comments are loaded dynamically. Configure your comments system in the theme.') }}