{% extends 'partials/base.html.twig' %} {% block content %} {% set trip_route = config.site.active_trip %} {% set trip = grav.pages.find(trip_route) %} {% if config.site.travelling %} {# ══════════════════════════════════════════════════════════ ACTIVE TRIP MODE #} {% set dailies_page = grav.pages.find(trip_route ~ '/dailies') %} {% set stories_page = grav.pages.find(trip_route ~ '/stories') %} {% set journal_entries = dailies_page ? dailies_page.children.published() : [] %} {% set story_entries = stories_page ? stories_page.children.published() : [] %} {% set all_items = [] %} {% for e in journal_entries %} {% set all_items = all_items|merge([{'type': 'journal', 'page': e, 'date': e.header.date}]) %} {% endfor %} {% for s in story_entries %} {% set all_items = all_items|merge([{'type': 'story', 'page': s, 'date': s.header.date}]) %} {% endfor %} {% set all_items = all_items|sort_by_key('date', 3) %} {% set journal_count = journal_entries|length %} {% set story_count = story_entries|length %} {% set map_entries = [] %} {% for item in all_items %} {% if item.type == 'journal' and item.page.header.lat is not empty and item.page.header.lng is not empty %} {% set map_entries = map_entries|merge([{ 'lat': item.page.header.lat|number_format(6, '.', ''), 'lng': item.page.header.lng|number_format(6, '.', ''), 'slug': item.page.slug, 'title': item.page.title, 'url': item.page.url, 'force_connect': item.page.header.force_connect ? true : false }]) %} {% endif %} {% endfor %} {% set home_gpx_urls = [] %} {% if trip %} {% for name, media in trip.media.all %} {% if name|split('.')|last == 'gpx' %} {% set home_gpx_urls = home_gpx_urls|merge([trip.url ~ '/' ~ name]) %} {% endif %} {% endfor %} {% endif %}

{{ trip ? trip.title : trip_route }}

{{ journal_count }} journal {{ journal_count == 1 ? 'entry' : 'entries' }} {% if story_count > 0 %} · {{ story_count }} {{ story_count == 1 ? 'story' : 'stories' }}{% endif %}
{% if all_items|length > 0 %} {% for item in all_items %} {% set entry = item.page %} {% if item.type == 'journal' %} {% set weather_icons = { 'Sunny': '☀️', 'Partly cloudy': '⛅', 'Cloudy': '☁️', 'Foggy': '🌫️', 'Drizzle': '🌦️', 'Rain': '🌧️', 'Snow': '❄️', 'Thunderstorm': '⛈️' } %}

{{ entry.title }}

{% set images = entry.media.images %} {% if images|length > 0 %}
{% for img in images %}
{{ entry.title }}
{% endfor %}
{% if images|length > 1 %} {% endif %} {% endif %}
{{ entry.content|raw }}
{% else %} {% set hero = null %} {% if entry.header.hero_image and entry.media[entry.header.hero_image] is defined %} {% set hero = entry.media[entry.header.hero_image] %} {% elseif entry.media.images|length > 0 %} {% set hero = entry.media.images|first %} {% endif %} {% if hero %}
{{ entry.title }}
{% endif %}
✦ Story

{{ entry.title }}

{% endif %} {% endfor %} {% else %}

No entries yet. The journey is about to begin.

{% endif %}
{% if map_entries|length > 0 %} {% if home_gpx_urls|length > 0 %} {% endif %} {% endif %} {% else %} {# ══════════════════════════════════════════════════════ BETWEEN-TRIPS MODE #} {# ── Highlight selection ─────────────────────────────────────────────────── #} {% set trips_page = grav.pages.find('/trips') %} {% set pool = [] %} {% if trips_page %} {% for trip_item in trips_page.children.published() %} {% set t_dailies = grav.pages.find(trip_item.route ~ '/dailies') %} {% set t_stories = grav.pages.find(trip_item.route ~ '/stories') %} {% set candidates = [] %} {% if t_dailies %} {% for e in t_dailies.children.published() %} {% if e.header.featured %} {% set candidates = candidates|merge([{'type': 'journal', 'page': e, 'trip': trip_item}]) %} {% endif %} {% endfor %} {% endif %} {% if t_stories %} {% for s in t_stories.children.published() %} {% if s.header.featured %} {% set candidates = candidates|merge([{'type': 'story', 'page': s, 'trip': trip_item}]) %} {% endif %} {% endfor %} {% endif %} {% if candidates|length > 0 %} {% set pool = pool|merge([random(candidates)]) %} {% endif %} {% endfor %} {% endif %} {% set pool = pool|shuffle %} {% set highlights = pool|slice(0, 6) %} {# ── Map entries (entries with coordinates) ──────────────────────────────── #} {% set highlights_map_entries = [] %} {% for item in highlights %} {% if item.page.header.lat is not empty and item.page.header.lng is not empty %} {% set highlights_map_entries = highlights_map_entries|merge([{ 'lat': item.page.header.lat|number_format(6, '.', ''), 'lng': item.page.header.lng|number_format(6, '.', ''), 'slug': item.page.slug, 'title': item.page.title, 'url': item.page.url }]) %} {% endif %} {% endfor %}

{{ page.title }}

{% if page.header.subtitle %}

{{ page.header.subtitle }}

{% endif %}
{% if highlights|length > 0 %}
{% for item in highlights %} {% set entry = item.page %} {% set hero = null %} {% if entry.header.hero_image and entry.media[entry.header.hero_image] is defined %} {% set hero = entry.media[entry.header.hero_image] %} {% elseif entry.media.images|length > 0 %} {% set hero = entry.media.images|first %} {% endif %}
{% if hero %}
{{ entry.title }}
{% endif %}
{% if item.type == 'story' %} ✦ Story {% else %} ▸ Journal {% endif %} {{ entry.title }}
{{ item.trip.title }} {% if item.trip.header.tagline %} {{ item.trip.header.tagline }} {% endif %} → View trip
{% endfor %}
{% else %}

No highlights yet — mark entries as featured to show them here.

{% endif %}
{% if highlights_map_entries|length > 0 %} {% endif %} {% endif %} {% endblock %}