Skip to content

Commit 6cd9eb1

Browse files
authored
feat(blog): taxonomies and client-side filter UI (#499)
## Summary Adds two blog-specific taxonomies (`article_types`, `topics`) and a client-side filter UI on the blog index so readers can narrow `/blog/` by article type and/or subject area. ## What **Data model — `hugo.yaml`** - Registers two new taxonomies: `article_type` / `article_types` and `topic` / `topics`. - Preserves Hugo's built-in `tag` and `category` taxonomies so nothing breaks if they are used later. **Tagging — every existing post** - 68 posts tagged across `content/en/blog/` with a combination of: - `article_types`: `release | how-to | case | tech-article | news` (usually one). - `topics`: `platform, postgresql, kubernetes, cilium, talos, opensearch, kubevirt, networking, storage, security, events, community, gpu` (zero to three, only when the subject is a main theme of the post — not incidental mentions). - Release posts get `platform` by default, plus any headline features that were clearly the reason for the release (e.g. OpenSearch, GPU passthrough). **Filter UI — `layouts/blog/list.html`** - Overrides the Docsy blog list template. Two rows of chips above the post list: **Type** (fixed order: release → how-to → case → tech-article → news) and **Topic** (auto-sorted). - Click a chip to toggle. Multiple chips within one dimension combine with OR; the two dimensions combine with AND. - State is mirrored into the URL: `/blog/?types=how-to&topics=postgresql,kubernetes`. Shareable, back/forward works. - Live counter: "Showing X of Y posts". Year groups collapse when empty under the current filter. - Pagination is dropped — for ~70 posts, showing the full archive once keeps filtering honest (otherwise filters only affect the visible page). ## Why Until now, the blog has been strictly chronological with no way to narrow down. Readers coming in from a community share ("how-to posts only", "anything about OpenSearch", "Cozystack release history") had to scroll the full archive. This change takes advantage of existing structure — most posts already fall cleanly into one of the five editorial types and a small set of topics — without introducing new maintenance burden: adding tags to new posts is a two-line frontmatter change. ## Preview Netlify deploy preview will render the full filter UI on `/blog/`. Things worth checking: - Chip layout on mobile (should wrap gracefully). - Empty-state when a filter combination matches zero posts. - URL deep-linking: open `/blog/?types=release&topics=platform` directly and the chips should arrive pre-selected. - Dark-mode contrast on chips (uses Bootstrap CSS variables). ## Follow-ups (not in this PR) - Make post tags on each card clickable so they act as filter shortcuts (currently they go to the Hugo-generated taxonomy list pages at `/article-types/<slug>/` and `/topics/<slug>/`, which still work but are separate URLs). - Optional: server-rendered filter state for SEO on common filter combinations.
2 parents 6955a88 + 54490f8 commit 6cd9eb1

70 files changed

Lines changed: 555 additions & 36 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

content/en/blog/2020-05-14-configuring-routing-for-metallb-in-l2-mode.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ author: "Andrei Kvapil"
66
description: "In this article I will show you how to configure source-based and policy-based routing for the external network on your cluster."
77
images:
88
- "https://cdn-images-1.medium.com/max/800/0*wI1GLh4MrCzuwiwB.png"
9+
article_types:
10+
- how-to
11+
topics:
12+
- networking
913

1014
---
1115

content/en/blog/2024-02-20-cozystack-v0-1.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ slug: cozystack-v0-1
44
date: 2024-02-20
55
author: "Timur Tukaev"
66
description: "The first feature release of Cozystack introduces ZFS storage support, leader election for the controller, and moves documentation to cozystack.io."
7+
article_types:
8+
- release
9+
topics:
10+
- platform
11+
- storage
12+
713
---
814

915
### Cozystack v0.1: ZFS Support, Leader Election, and Documentation Move

content/en/blog/2024-02-21-introducing-cozystack-a-free-paas-platform-based-on-kubernetes.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ slug: introducing-cozystack-a-free-paas-platform-based-on-kubernetes
44
date: 2024-02-21
55
images:
66
- "https://cozystack.io/img/screenshot.png"
7+
article_types:
8+
- news
9+
topics:
10+
- platform
711

812
---
913

content/en/blog/2024-04-05-cozystack-v0-2.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ slug: cozystack-v0-2
44
date: 2024-04-05
55
author: "Timur Tukaev"
66
description: "Cozystack v0.2 introduces bundle-based installation, schema versioning for charts, moves FluxCD to the core, and updates Cilium, LINSTOR, CNPG, and MariaDB Operator."
7+
article_types:
8+
- release
9+
topics:
10+
- platform
11+
712
---
813

914
### Cozystack v0.2: Bundles, Schema Versioning, FluxCD as Core Package, and Component Updates

content/en/blog/2024-04-05-diy-create-your-own-cloud-with-kubernetes-part-1/index.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22
title: "DIY: Create Your Own Cloud with Kubernetes (Part 1)"
33
slug: diy-create-your-own-cloud-with-kubernetes-part-1
44
date: 2024-04-05T07:30:00+00:00
5+
article_types:
6+
- tech-article
7+
topics:
8+
- platform
9+
- kubernetes
10+
511
---
612

713
**Author**: Andrei Kvapil (Ænix)

content/en/blog/2024-04-05-diy-create-your-own-cloud-with-kubernetes-part-2/index.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22
title: "DIY: Create Your Own Cloud with Kubernetes (Part 2)"
33
slug: diy-create-your-own-cloud-with-kubernetes-part-2
44
date: 2024-04-05T07:35:00+00:00
5+
article_types:
6+
- tech-article
7+
topics:
8+
- platform
9+
- kubernetes
10+
- networking
11+
- storage
12+
513
---
614

715
**Author**: Andrei Kvapil (Ænix)

content/en/blog/2024-04-05-diy-create-your-own-cloud-with-kubernetes-part-3/index.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22
title: "DIY: Create Your Own Cloud with Kubernetes (Part 3)"
33
slug: diy-create-your-own-cloud-with-kubernetes-part-3
44
date: 2024-04-05T07:40:00+00:00
5+
article_types:
6+
- tech-article
7+
topics:
8+
- platform
9+
- kubernetes
10+
511
---
612

713
**Author**: Andrei Kvapil (Ænix)

content/en/blog/2024-04-18-cozystack-v0-3.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ slug: cozystack-v0-3
44
date: 2024-04-18
55
author: "Timur Tukaev"
66
description: "Cozystack v0.3 adds Kafka and ClickHouse as managed applications and introduces NoCloud assets for Hetzner bare-metal installation."
7+
article_types:
8+
- release
9+
topics:
10+
- platform
11+
712
---
813

914
### Cozystack v0.3: Kafka, ClickHouse, and Hetzner Bare-Metal Support

content/en/blog/2024-05-06-cozystack-v0-4.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ slug: cozystack-v0-4
44
date: 2024-05-06
55
author: "Timur Tukaev"
66
description: "Cozystack v0.4 replaces kamaji-etcd with the new aenix-io/etcd-operator, adds replica configuration for applications, and updates Kamaji, LINSTOR, and Kubeapps."
7+
article_types:
8+
- release
9+
topics:
10+
- platform
11+
712
---
813

914
### Cozystack v0.4: etcd Operator, Replica Options, Kamaji v0.5, and Dark Mode Fix

content/en/blog/2024-05-10-cozystack-v0-5.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ slug: cozystack-v0-5
44
date: 2024-05-10
55
author: "Timur Tukaev"
66
description: "Cozystack v0.5 adds automatic Helm schema generation, removes hardcoded defaults, and updates Cilium and MariaDB Operator."
7+
article_types:
8+
- release
9+
topics:
10+
- platform
11+
- cilium
12+
713
---
814

915
### Cozystack v0.5: Automatic Schema Generation, Cilium v1.14.10, and MariaDB Operator Update

0 commit comments

Comments
 (0)