mirror of
https://github.com/svemagie/blog-eleventy-indiekit.git
synced 2026-04-02 16:44:56 +02:00
Each collection page (articles, notes, photos, bookmarks, likes, replies, reposts) now shows its own sparkline next to the heading, showing that specific post type's frequency over the last 12 months.
106 lines
4.2 KiB
Plaintext
106 lines
4.2 KiB
Plaintext
---
|
|
layout: layouts/base.njk
|
|
title: Photos
|
|
withSidebar: true
|
|
pagination:
|
|
data: collections.photos
|
|
size: 20
|
|
alias: paginatedPhotos
|
|
generatePageOnEmptyData: true
|
|
permalink: "photos/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber + 1 }}/{% endif %}"
|
|
---
|
|
<div class="h-feed">
|
|
<div class="flex flex-wrap items-center gap-4 mb-2">
|
|
<h1 class="text-2xl sm:text-3xl font-bold text-surface-900 dark:text-surface-100">Photos</h1>
|
|
{% set sparklineSvg = collections.photos | postingFrequency %}
|
|
{% if sparklineSvg %}
|
|
<span class="opacity-60 dark:opacity-40 text-surface-500 dark:text-surface-400">{{ sparklineSvg | safe }}</span>
|
|
{% endif %}
|
|
</div>
|
|
<p class="text-surface-600 dark:text-surface-400 mb-6 sm:mb-8">
|
|
Photo posts and images.
|
|
<span class="text-sm">({{ collections.photos.length }} total)</span>
|
|
</p>
|
|
|
|
{% if paginatedPhotos.length > 0 %}
|
|
<ul class="post-list photo-list">
|
|
{% for post in paginatedPhotos %}
|
|
<li class="h-entry post-card">
|
|
<div class="post-meta">
|
|
<time class="dt-published" datetime="{{ post.date | isoDate }}">
|
|
{{ post.date | dateDisplay }}
|
|
</time>
|
|
{% if post.data.category %}
|
|
<span class="post-categories">
|
|
{% if post.data.category is string %}
|
|
<span class="p-category">{{ post.data.category }}</span>
|
|
{% else %}
|
|
{% for cat in post.data.category %}
|
|
<span class="p-category">{{ cat }}</span>
|
|
{% endfor %}
|
|
{% endif %}
|
|
</span>
|
|
{% endif %}
|
|
</div>
|
|
{# Render photo(s) from frontmatter - use eleventy:ignore to skip image transform #}
|
|
{% if post.data.photo %}
|
|
<div class="photo-gallery mt-3">
|
|
{% for img in post.data.photo %}
|
|
{% set photoUrl = img.url %}
|
|
{% if photoUrl and photoUrl[0] != '/' and 'http' not in photoUrl %}
|
|
{% set photoUrl = '/' + photoUrl %}
|
|
{% endif %}
|
|
<a href="{{ post.url }}" class="photo-link">
|
|
<img src="{{ photoUrl }}" alt="{{ img.alt | default('Photo') }}" class="u-photo" loading="lazy" eleventy:ignore>
|
|
</a>
|
|
{% endfor %}
|
|
</div>
|
|
{% endif %}
|
|
{% if post.templateContent %}
|
|
<div class="e-content photo-caption prose dark:prose-invert prose-sm mt-3 max-w-none">{{ post.templateContent | safe }}</div>
|
|
{% endif %}
|
|
<a class="u-url text-sm text-primary-600 dark:text-primary-400 hover:underline mt-3 inline-block" href="{{ post.url }}">Permalink</a>
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
|
|
{# Pagination controls #}
|
|
{% if pagination.pages.length > 1 %}
|
|
<nav class="pagination" aria-label="Photos pagination">
|
|
<div class="pagination-info">
|
|
Page {{ pagination.pageNumber + 1 }} of {{ pagination.pages.length }}
|
|
</div>
|
|
<div class="pagination-links">
|
|
{% if pagination.href.previous %}
|
|
<a href="{{ pagination.href.previous }}" class="pagination-link" aria-label="Previous page">
|
|
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7"></path></svg>
|
|
Previous
|
|
</a>
|
|
{% else %}
|
|
<span class="pagination-link disabled">
|
|
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7"></path></svg>
|
|
Previous
|
|
</span>
|
|
{% endif %}
|
|
|
|
{% if pagination.href.next %}
|
|
<a href="{{ pagination.href.next }}" class="pagination-link" aria-label="Next page">
|
|
Next
|
|
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path></svg>
|
|
</a>
|
|
{% else %}
|
|
<span class="pagination-link disabled">
|
|
Next
|
|
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path></svg>
|
|
</span>
|
|
{% endif %}
|
|
</div>
|
|
</nav>
|
|
{% endif %}
|
|
|
|
{% else %}
|
|
{% set postType = "photo" %}
|
|
{% include "components/empty-collection.njk" %}
|
|
{% endif %}
|
|
</div>
|