mirror of
https://github.com/svemagie/blog-eleventy-indiekit.git
synced 2026-05-15 06:58:50 +02:00
feat: add posting frequency sparklines to all post type pages
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.
This commit is contained in:
+7
-1
@@ -10,7 +10,13 @@ pagination:
|
|||||||
permalink: "articles/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber + 1 }}/{% endif %}"
|
permalink: "articles/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber + 1 }}/{% endif %}"
|
||||||
---
|
---
|
||||||
<div class="h-feed">
|
<div class="h-feed">
|
||||||
<h1 class="text-2xl sm:text-3xl font-bold text-surface-900 dark:text-surface-100 mb-2">Articles</h1>
|
<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">Articles</h1>
|
||||||
|
{% set sparklineSvg = collections.articles | 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">
|
<p class="text-surface-600 dark:text-surface-400 mb-6 sm:mb-8">
|
||||||
Long-form posts and essays.
|
Long-form posts and essays.
|
||||||
<span class="text-sm">({{ collections.articles.length }} total)</span>
|
<span class="text-sm">({{ collections.articles.length }} total)</span>
|
||||||
|
|||||||
+7
-1
@@ -10,7 +10,13 @@ pagination:
|
|||||||
permalink: "bookmarks/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber + 1 }}/{% endif %}"
|
permalink: "bookmarks/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber + 1 }}/{% endif %}"
|
||||||
---
|
---
|
||||||
<div class="h-feed">
|
<div class="h-feed">
|
||||||
<h1 class="text-2xl sm:text-3xl font-bold text-surface-900 dark:text-surface-100 mb-2">Bookmarks</h1>
|
<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">Bookmarks</h1>
|
||||||
|
{% set sparklineSvg = collections.bookmarks | 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">
|
<p class="text-surface-600 dark:text-surface-400 mb-6 sm:mb-8">
|
||||||
Links I've saved for later.
|
Links I've saved for later.
|
||||||
<span class="text-sm">({{ collections.bookmarks.length }} total)</span>
|
<span class="text-sm">({{ collections.bookmarks.length }} total)</span>
|
||||||
|
|||||||
@@ -10,7 +10,13 @@ pagination:
|
|||||||
permalink: "likes/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber + 1 }}/{% endif %}"
|
permalink: "likes/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber + 1 }}/{% endif %}"
|
||||||
---
|
---
|
||||||
<div class="h-feed">
|
<div class="h-feed">
|
||||||
<h1 class="text-2xl sm:text-3xl font-bold text-surface-900 dark:text-surface-100 mb-2">Likes</h1>
|
<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">Likes</h1>
|
||||||
|
{% set sparklineSvg = collections.likes | 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">
|
<p class="text-surface-600 dark:text-surface-400 mb-6 sm:mb-8">
|
||||||
Content I've liked across the web.
|
Content I've liked across the web.
|
||||||
<span class="text-sm">({{ collections.likes.length }} total)</span>
|
<span class="text-sm">({{ collections.likes.length }} total)</span>
|
||||||
|
|||||||
@@ -10,7 +10,13 @@ pagination:
|
|||||||
permalink: "notes/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber + 1 }}/{% endif %}"
|
permalink: "notes/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber + 1 }}/{% endif %}"
|
||||||
---
|
---
|
||||||
<div class="h-feed">
|
<div class="h-feed">
|
||||||
<h1 class="text-2xl sm:text-3xl font-bold text-surface-900 dark:text-surface-100 mb-2">Notes</h1>
|
<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">Notes</h1>
|
||||||
|
{% set sparklineSvg = collections.notes | 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">
|
<p class="text-surface-600 dark:text-surface-400 mb-6 sm:mb-8">
|
||||||
Short thoughts, updates, and quick posts.
|
Short thoughts, updates, and quick posts.
|
||||||
<span class="text-sm">({{ collections.notes.length }} total)</span>
|
<span class="text-sm">({{ collections.notes.length }} total)</span>
|
||||||
|
|||||||
+7
-1
@@ -10,7 +10,13 @@ pagination:
|
|||||||
permalink: "photos/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber + 1 }}/{% endif %}"
|
permalink: "photos/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber + 1 }}/{% endif %}"
|
||||||
---
|
---
|
||||||
<div class="h-feed">
|
<div class="h-feed">
|
||||||
<h1 class="text-2xl sm:text-3xl font-bold text-surface-900 dark:text-surface-100 mb-2">Photos</h1>
|
<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">
|
<p class="text-surface-600 dark:text-surface-400 mb-6 sm:mb-8">
|
||||||
Photo posts and images.
|
Photo posts and images.
|
||||||
<span class="text-sm">({{ collections.photos.length }} total)</span>
|
<span class="text-sm">({{ collections.photos.length }} total)</span>
|
||||||
|
|||||||
+7
-1
@@ -10,7 +10,13 @@ pagination:
|
|||||||
permalink: "replies/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber + 1 }}/{% endif %}"
|
permalink: "replies/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber + 1 }}/{% endif %}"
|
||||||
---
|
---
|
||||||
<div class="h-feed">
|
<div class="h-feed">
|
||||||
<h1 class="text-2xl sm:text-3xl font-bold text-surface-900 dark:text-surface-100 mb-2">Replies</h1>
|
<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">Replies</h1>
|
||||||
|
{% set sparklineSvg = collections.replies | 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">
|
<p class="text-surface-600 dark:text-surface-400 mb-6 sm:mb-8">
|
||||||
My responses to posts across the web.
|
My responses to posts across the web.
|
||||||
<span class="text-sm">({{ collections.replies.length }} total)</span>
|
<span class="text-sm">({{ collections.replies.length }} total)</span>
|
||||||
|
|||||||
+7
-1
@@ -10,7 +10,13 @@ pagination:
|
|||||||
permalink: "reposts/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber + 1 }}/{% endif %}"
|
permalink: "reposts/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber + 1 }}/{% endif %}"
|
||||||
---
|
---
|
||||||
<div class="h-feed">
|
<div class="h-feed">
|
||||||
<h1 class="text-2xl sm:text-3xl font-bold text-surface-900 dark:text-surface-100 mb-2">Reposts</h1>
|
<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">Reposts</h1>
|
||||||
|
{% set sparklineSvg = collections.reposts | 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">
|
<p class="text-surface-600 dark:text-surface-400 mb-6 sm:mb-8">
|
||||||
Content I've shared from others.
|
Content I've shared from others.
|
||||||
<span class="text-sm">({{ collections.reposts.length }} total)</span>
|
<span class="text-sm">({{ collections.reposts.length }} total)</span>
|
||||||
|
|||||||
Reference in New Issue
Block a user