feat: configurable post-graph section and dedicated /graph page

- Add posting-activity.njk section template with configurable years/limit
- Register posting-activity in homepage-section.njk dispatcher
- Move hardcoded post-graph into Tier 2 block (homepage builder controls its own)
- Add "View full history" link to /graph/ on both Tier 2 and section template
- Create /graph/ page showing all years with no limit

Confab-Link: http://localhost:8080/sessions/edb1b7b0-da66-4486-bd9c-d1cfa7553b88
This commit is contained in:
Ricardo
2026-03-05 15:42:00 +01:00
parent d8e982e3c3
commit b9a42b3a73
4 changed files with 53 additions and 3 deletions

View File

@@ -49,6 +49,8 @@
{% include "components/sections/funkwhale.njk" ignore missing %}
{% elif section.type == "lastfm" %}
{% include "components/sections/lastfm.njk" ignore missing %}
{% elif section.type == "posting-activity" %}
{% include "components/sections/posting-activity.njk" ignore missing %}
{% else %}
<!-- Unknown section type: {{ section.type }} -->
{% endif %}

View File

@@ -0,0 +1,24 @@
{# Posting Activity Section — configurable post-graph contribution grid #}
{% set sectionConfig = section.config or {} %}
{% set graphTitle = sectionConfig.title or "Posting Activity" %}
{% if collections.posts and collections.posts.length %}
<section class="mb-8 sm:mb-12">
<h2 class="text-xl sm:text-2xl font-bold text-surface-900 dark:text-surface-100 mb-4 sm:mb-6">
{{ graphTitle }}
</h2>
{% set graphOptions = {} %}
{% if sectionConfig.years and sectionConfig.years.length %}
{% set graphOptions = { only: sectionConfig.years } %}
{% elif sectionConfig.limit %}
{% set graphOptions = { limit: sectionConfig.limit } %}
{% endif %}
{% postGraph collections.posts, graphOptions %}
<a href="/graph/" class="text-sm text-accent-600 dark:text-accent-400 hover:underline mt-4 inline-flex items-center gap-1">
View full history
<svg class="w-3 h-3" 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"/>
</svg>
</a>
</section>
{% endif %}

View File

@@ -140,12 +140,18 @@ withSidebar: true
</div>
</section>
{% endif %} {# end two-tier fallback #}
{# Posting Activity — contribution graph (shown on all homepage variants) #}
{# Posting Activity — contribution graph (Tier 2 default only) #}
{% if collections.posts and collections.posts.length %}
<section class="mb-8 sm:mb-12">
<h2 class="text-xl sm:text-2xl font-bold text-surface-900 dark:text-surface-100 mb-4 sm:mb-6">Posting Activity</h2>
{% postGraph collections.posts %}
<a href="/graph/" class="text-sm text-accent-600 dark:text-accent-400 hover:underline mt-4 inline-flex items-center gap-1">
View full history
<svg class="w-3 h-3" 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"/>
</svg>
</a>
</section>
{% endif %}
{% endif %} {# end two-tier fallback #}

18
graph.njk Normal file
View File

@@ -0,0 +1,18 @@
---
layout: layouts/base.njk
title: Posting Activity
permalink: /graph/
withSidebar: true
---
<h1 class="text-2xl sm:text-3xl font-bold text-surface-900 dark:text-surface-100 mb-6">Posting Activity</h1>
<p class="text-surface-600 dark:text-surface-400 mb-8">
A contribution-style graph showing posting frequency across all years.
</p>
{% if collections.posts and collections.posts.length %}
{% postGraph collections.posts, { limit: 0 } %}
{% else %}
<p class="text-surface-500 dark:text-surface-400">No posts found.</p>
{% endif %}