{% extends "base.html" %} {# ================================================================================ Tutorial Single Page Template (Kida-Native) ================================================================================ Individual tutorial page optimized for step-by-step learning. KIDA FEATURES USED: - {% let %} for template-scoped variables - Optional chaining (?.) for null-safe access - Null coalescing (??) for smart defaults - {% def %} for reusable card components USAGE: Set `type: tutorial` in frontmatter or use cascade from section ================================================================================ #} {% from 'partials/navigation-components.html' import breadcrumbs, page_navigation %} {# ============================================================================= RELATED TUTORIAL CARD ============================================================================= #} {% def related_tutorial_card(tutorial) %} {% let tut_meta = tutorial?.metadata ?? {} %} {% let tut_title = tutorial?.title ?? 'Tutorial' %} {% let tut_href = tutorial?.href ?? '#' %} {% let tut_icon = tut_meta?.icon ?? 'book' %} {% let tut_desc = tut_meta?.description ?? '' %} {% let tut_difficulty = tut_meta?.difficulty ?? '' %}
{{ tut_icon }}

{{ tut_title }}

{% if tut_desc %}

{{ tut_desc | truncate(100) }}

{% end %} {% if tut_difficulty %} {{ tut_difficulty | capitalize }} {% end %}
{% end %} {# ============================================================================= MAIN TEMPLATE ============================================================================= #} {% block content %} {# Template-scoped variables #} {% let page_title = page?.title ?? 'Tutorial' %} {% let page_date = page?.date %} {% let page_tags = page?.tags ?? [] %} {% let css_class = params?.css_class ?? '' %} {# Tutorial metadata #} {% let tut_icon = params?.icon ?? '' %} {% let tut_desc = params?.description ?? '' %} {% let tut_difficulty = params?.difficulty ?? '' %} {% let tut_time = params?.time ?? params?.duration ?? '' %} {% let tut_prereqs = params?.prerequisites ?? [] %} {% let tut_objectives = params?.learning_objectives ?? params?.objectives ?? [] %} {% let tut_next_steps = params?.next_steps ?? [] %} {% let tut_further_reading = params?.further_reading ?? [] %}
{# Action Bar: Breadcrumbs + Share #} {% include 'partials/action-bar.html' %}
{# Main Tutorial Content #}
{{ content | safe }}
{# What's Next / Further Reading #} {% if tut_next_steps | length > 0 or tut_further_reading | length > 0 %}
{% if tut_next_steps | length > 0 %}

{{ t('tutorial.whats_next', default="What's Next?") }}

    {% for step in tut_next_steps %}
  • {{ step }}
  • {% end %}
{% end %} {% if tut_further_reading | length > 0 %}

{{ t('tutorial.further_reading', default='Further Reading') }}

    {% for resource in tut_further_reading %}
  • {{ resource }}
  • {% end %}
{% end %}
{% end %}
{# Right Sidebar: TOC #} {% if toc %} {% end %}
{# Prominent Prev/Next Navigation #}
{{ page_navigation(page) }}
{# Related Tutorials #} {% if page_tags | length > 0 %} {% let related = page?.related_posts ?? [] %} {% let related_tutorials = related[:3] %} {% if related_tutorials | length > 0 %} {% end %} {% end %} {% end %}