feat: derive gardenStage from nested tags (garden/cultivate)

- eleventyComputed in content.11tydata.js resolves gardenStage from
  category/tags at build time — no explicit gardenStage frontmatter needed
- withoutGardenTags filter strips garden/* from category pill rendering
- categories collection excludes garden/* entries (no phantom category pages)
- All list templates and post layout use withoutGardenTags filter
This commit is contained in:
svemagie
2026-03-15 09:41:18 +01:00
parent 1223afc9e9
commit 04b6ed1217
12 changed files with 90 additions and 46 deletions

View File

@@ -69,12 +69,12 @@ permalink: "blog/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber
<time-difference><time class="dt-published font-mono text-sm" datetime="{{ post.date | isoDate }}">
{{ post.date | dateDisplay }}
</time></time-difference>
{% if post.data.category %}
{% if post.data.category | withoutGardenTags %}
<span class="post-categories">
{% if post.data.category is string %}
<a href="/categories/{{ post.data.category | slugify }}/" class="p-category">{{ post.data.category }}</a>
{% else %}
{% for cat in post.data.category %}
{% for cat in (post.data.category | withoutGardenTags) %}
<a href="/categories/{{ cat | slugify }}/" class="p-category">{{ cat }}</a>
{% endfor %}
{% endif %}
@@ -109,12 +109,12 @@ permalink: "blog/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber
<time-difference><time class="dt-published font-mono text-sm" datetime="{{ post.date | isoDate }}">
{{ post.date | dateDisplay }}
</time></time-difference>
{% if post.data.category %}
{% if post.data.category | withoutGardenTags %}
<span class="post-categories">
{% if post.data.category is string %}
<a href="/categories/{{ post.data.category | slugify }}/" class="p-category">{{ post.data.category }}</a>
{% else %}
{% for cat in post.data.category %}
{% for cat in (post.data.category | withoutGardenTags) %}
<a href="/categories/{{ cat | slugify }}/" class="p-category">{{ cat }}</a>
{% endfor %}
{% endif %}
@@ -154,12 +154,12 @@ permalink: "blog/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber
<time-difference><time class="dt-published font-mono text-sm" datetime="{{ post.date | isoDate }}">
{{ post.date | dateDisplay }}
</time></time-difference>
{% if post.data.category %}
{% if post.data.category | withoutGardenTags %}
<span class="post-categories">
{% if post.data.category is string %}
<a href="/categories/{{ post.data.category | slugify }}/" class="p-category">{{ post.data.category }}</a>
{% else %}
{% for cat in post.data.category %}
{% for cat in (post.data.category | withoutGardenTags) %}
<a href="/categories/{{ cat | slugify }}/" class="p-category">{{ cat }}</a>
{% endfor %}
{% endif %}
@@ -194,12 +194,12 @@ permalink: "blog/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber
<time-difference><time class="dt-published font-mono text-sm" datetime="{{ post.date | isoDate }}">
{{ post.date | dateDisplay }}
</time></time-difference>
{% if post.data.category %}
{% if post.data.category | withoutGardenTags %}
<span class="post-categories">
{% if post.data.category is string %}
<a href="/categories/{{ post.data.category | slugify }}/" class="p-category">{{ post.data.category }}</a>
{% else %}
{% for cat in post.data.category %}
{% for cat in (post.data.category | withoutGardenTags) %}
<a href="/categories/{{ cat | slugify }}/" class="p-category">{{ cat }}</a>
{% endfor %}
{% endif %}
@@ -233,12 +233,12 @@ permalink: "blog/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber
<time-difference><time class="dt-published font-mono text-sm" datetime="{{ post.date | isoDate }}">
{{ post.date | dateDisplay }}
</time></time-difference>
{% if post.data.category %}
{% if post.data.category | withoutGardenTags %}
<span class="post-categories">
{% if post.data.category is string %}
<a href="/categories/{{ post.data.category | slugify }}/" class="p-category">{{ post.data.category }}</a>
{% else %}
{% for cat in post.data.category %}
{% for cat in (post.data.category | withoutGardenTags) %}
<a href="/categories/{{ cat | slugify }}/" class="p-category">{{ cat }}</a>
{% endfor %}
{% endif %}
@@ -278,12 +278,12 @@ permalink: "blog/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber
<time class="dt-published font-mono text-sm" datetime="{{ post.date | isoDate }}">
{{ post.date | dateDisplay }}
</time>
{% if post.data.category %}
{% if post.data.category | withoutGardenTags %}
<span class="post-categories">
{% if post.data.category is string %}
<a href="/categories/{{ post.data.category | slugify }}/" class="p-category">{{ post.data.category }}</a>
{% else %}
{% for cat in post.data.category %}
{% for cat in (post.data.category | withoutGardenTags) %}
<a href="/categories/{{ cat | slugify }}/" class="p-category">{{ cat }}</a>
{% endfor %}
{% endif %}
@@ -307,12 +307,12 @@ permalink: "blog/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumber
{{ post.date | dateDisplay }}
</time></time-difference>
</a>
{% if post.data.category %}
{% if post.data.category | withoutGardenTags %}
<span class="post-categories ml-2">
{% if post.data.category is string %}
<a href="/categories/{{ post.data.category | slugify }}/" class="p-category">{{ post.data.category }}</a>
{% else %}
{% for cat in post.data.category %}
{% for cat in (post.data.category | withoutGardenTags) %}
<a href="/categories/{{ cat | slugify }}/" class="p-category">{{ cat }}</a>
{% endfor %}
{% endif %}