diff --git a/TODO.md b/TODO.md
index 9b62be9..2e6a07e 100644
--- a/TODO.md
+++ b/TODO.md
@@ -1 +1,11 @@
-- SvarBox 26/10/25
\ No newline at end of file
+- SvarBox 26/10/25
+
+performance
+cinema
+event
+audio
+cooperation
+code
+workshop
+blog
+installation
\ No newline at end of file
diff --git a/web/content/blog/chisinau.md b/web/content/blog/chisinau.md
index 84d8f87..da74dec 100644
--- a/web/content/blog/chisinau.md
+++ b/web/content/blog/chisinau.md
@@ -1,6 +1,6 @@
Title: Alternative KunsTräume - Chisinau
Date: 2015-10-17 23:00
-Category: event
+Category: performance
Slug: chisinau
Summary: Trip to Moldova to support alternative art spaces in eastern Europe
diff --git a/web/content/blog/dopecarpet.md b/web/content/blog/dopecarpet.md
index 385f50a..8200f3d 100644
--- a/web/content/blog/dopecarpet.md
+++ b/web/content/blog/dopecarpet.md
@@ -1,6 +1,6 @@
Title: Dopecarpet & Rugreefer
Date: 2025-03-05 23:00
-Category: code
+Category: software
Slug: dopecarpet
Summary: Geospatial metadata API to package OpenStreetMap data into geohash-based tiles and a Dart library to efficiently fetch, parse, and cache that spatial information.
@@ -12,5 +12,5 @@ To retrieve data from the API I also built the Dart library [Rugreefer](https://
## Repositories
-* [Dopecarpet](https://codeberg.org/randogoth/dopecarpet)
-* [Rugreefer](https://codeberg.org/randogoth/rugreefer)
\ No newline at end of file
+* [Dopecarpet](https://codeberg.org/randogoth/dopecarpet)
+* [Rugreefer](https://codeberg.org/randogoth/rugreefer)
\ No newline at end of file
diff --git a/web/content/blog/lyagushka.md b/web/content/blog/lyagushka.md
index b0d181a..753f98a 100644
--- a/web/content/blog/lyagushka.md
+++ b/web/content/blog/lyagushka.md
@@ -1,6 +1,6 @@
Title: Lyagushka
Date: 2025-01-09 23:00
-Category: code
+Category: software
Slug: lyagushka
Summary: Rust-based command-line tool that detects statistically significant attractor clusters and void gaps in one-dimensional integer datasets.
@@ -12,4 +12,4 @@ It is an algorithm that analyzes a one-dimensional dataset of integers to identi
## Repository
-* [lyagushka](https://codeberg.org/randogoth/lyagushka)
\ No newline at end of file
+* [lyagushka](https://codeberg.org/randogoth/lyagushka)
\ No newline at end of file
diff --git a/web/content/blog/map3terms.md b/web/content/blog/map3terms.md
index a453ee1..6b7f0ab 100644
--- a/web/content/blog/map3terms.md
+++ b/web/content/blog/map3terms.md
@@ -1,6 +1,6 @@
Title: map3terms
Date: 2025-02-02 23:00
-Category: code
+Category: software
Slug: map3terms
Summary: Open-source Feistel-cipher–based three-word generator for geographic coordinates, ported from JavaScript to Dart.
@@ -12,4 +12,4 @@ Since there was no need to use a service for navigation purposes but merely to p
## Repository
-* [map3terms](https://codeberg.org/randogoth/map3terms)
\ No newline at end of file
+* [map3terms](https://codeberg.org/randogoth/map3terms)
\ No newline at end of file
diff --git a/web/content/blog/md2txt.md b/web/content/blog/md2txt.md
index 7e52d62..33c68be 100644
--- a/web/content/blog/md2txt.md
+++ b/web/content/blog/md2txt.md
@@ -1,6 +1,6 @@
Title: md2txt
Date: 2025-10-20 23:00
-Category: code
+Category: software
Slug: md2txt
Summary: Driven by my interest in retro, text-based systems, I built md2txt, a standalone CLI that converts Markdown into Micron and other niche formats such as Ancient Machine Book and Gemini’s gemtext.
@@ -10,4 +10,4 @@ Expanding on my previous work on a converter from Markdown to Micron, the markup
## Repository
-* [md2txt](https://codeberg.org/randogoth/md2txt)
\ No newline at end of file
+* [md2txt](https://codeberg.org/randogoth/md2txt)
\ No newline at end of file
diff --git a/web/content/blog/ocelli.md b/web/content/blog/ocelli.md
index 0f12435..c62464b 100644
--- a/web/content/blog/ocelli.md
+++ b/web/content/blog/ocelli.md
@@ -1,6 +1,6 @@
Title: Ocelli TRNG
Date: 2025-01-05 23:00
-Category: code
+Category: software
Slug: ocelli
Summary: Rust library with FFI bindings built for Randonautica that can be used to generate high-quality entropy using a camera feed.
@@ -10,4 +10,4 @@ It has been successfully tested on several mobile phones and will be implemented
## Repository
-* [ocelli](https://codeberg.org/randogoth/ocelli)
\ No newline at end of file
+* [ocelli](https://codeberg.org/randogoth/ocelli)
\ No newline at end of file
diff --git a/web/content/blog/onod3000.md b/web/content/blog/onod3000.md
index 407f2cf..eff271c 100644
--- a/web/content/blog/onod3000.md
+++ b/web/content/blog/onod3000.md
@@ -1,6 +1,6 @@
Title: onod 3000
Date: 2025-01-18 23:00
-Category: code
+Category: software
Slug: onod3000
Summary: Rust port of the ent 3000 randomness testing suite for TRNG Makers.
@@ -26,4 +26,4 @@ All tests have been carefully ported from [Paul Uszak's Java code](http://www.re
## Repository
-* [onod3000](https://codeberg.org/randogoth/onod3000)
\ No newline at end of file
+* [onod3000](https://codeberg.org/randogoth/onod3000)
\ No newline at end of file
diff --git a/web/content/blog/psithemius.md b/web/content/blog/psithemius.md
index 404395f..5d30b17 100644
--- a/web/content/blog/psithemius.md
+++ b/web/content/blog/psithemius.md
@@ -1,6 +1,6 @@
Title: Psithemius
Date: 2020-07-16 21:00
-Category: device
+Category: hardware
Summary: Invention of a magical device based on Renaissance magic and Psionic technology.
The Psithemius is a psionic device for spirit conjuration and magical manifestation.
@@ -13,7 +13,7 @@ Its basic architecture consists of printed circuit boards hosting concentric cir
For the Psithemius device to work properly, a small single terminated or ball shaped quartz crystal is needed. The device emits light and an electromagnetic field around and into this quartz crystal set in the center of the triangle that acts as a focal point and spirit medium.
-The Psithemius device utilizes principles borrowed from the lesser known works of *Nikola Tesla* and the fringe-science of *Psionics* to detect and electrically amplify the user's intent in the form of magical sigils or radionic rates. The goal is to charge the crystal with energies resonating with the nature of an entity and act as a beacon of condensed intent to attract them to the ritual space.
+The Psithemius device utilizes principdeviceles borrowed from the lesser known works of *Nikola Tesla* and the fringe-science of *Psionics* to detect and electrically amplify the user's intent in the form of magical sigils or radionic rates. The goal is to charge the crystal with energies resonating with the nature of an entity and act as a beacon of condensed intent to attract them to the ritual space.

diff --git a/web/content/blog/reticulum.md b/web/content/blog/reticulum.md
index eb93444..e9e3fa5 100644
--- a/web/content/blog/reticulum.md
+++ b/web/content/blog/reticulum.md
@@ -1,6 +1,6 @@
Title: CLI Tools for Reticulum & Nomad Network
Date: 2023-05-28 23:00
-Category: code
+Category: software
Slug: reticulum
Summary: Contributed several low-bandwidth tools and content systems to the Reticulum Network ecosystem, focused on resilient, minimal-infrastructure communication.
@@ -24,7 +24,7 @@ The most popular service that runs on Reticulum is the low bandwidth [Nomad Netw
## Repositories
-* [LoRaTransmit](https://codeberg.org/randogoth/lora-transmit)
-* [LXMFBot](https://codeberg.org/randogoth/lxmf-bot)
-* [micron-blog](https://codeberg.org/randogoth/micron-blog)
-* [md2mu](https://github.com/randogoth/md2mu)
\ No newline at end of file
+* [LoRaTransmit](https://codeberg.org/randogoth/lora-transmit)
+* [LXMFBot](https://codeberg.org/randogoth/lxmf-bot)
+* [micron-blog](https://codeberg.org/randogoth/micron-blog)
+* [md2mu](https://github.com/randogoth/md2mu)
\ No newline at end of file
diff --git a/web/content/blog/sensor-watch.md b/web/content/blog/sensor-watch.md
index ea44aed..9dcb4ca 100644
--- a/web/content/blog/sensor-watch.md
+++ b/web/content/blog/sensor-watch.md
@@ -1,6 +1,6 @@
Title: Sensor Watch Faces
Date: 2023-03-31 23:00
-Category: code
+Category: software
Summary: Designed and coded some watch faces for the Movement firmware of the Sensor Watch project
[Sensor Watch](https://www.sensorwatch.net) is a board replacement for the classic *Casio F-91W* wristwatch invented by [Joey Castillo](https://www.joeycastillo.com) at [Oddly Specific Objects](https://www.oddlyspecificobjects.com). It is powered by a Microchip SAM L22 microcontroller with built-in segment LCD controller. Sensor Watch ships with a build of the Movement community firmware that manages the display of different screens of content on the watch. These screens are called watch faces. They can be passive displays of information like a clock or a calendar, or they can be fully interactive user interfaces like the Preferences face, which allows the user to customize Movement’s behavior.
diff --git a/web/content/blog/voidcat.md b/web/content/blog/voidcat.md
index 1174cd4..1d44e83 100644
--- a/web/content/blog/voidcat.md
+++ b/web/content/blog/voidcat.md
@@ -1,6 +1,6 @@
Title: Voidcat Algorithm
Date: 2024-04-10 23:00
-Category: code
+Category: software
Slug: voidcat
Summary: A new Rust-based spatial anomaly detection algorithm for Randonautica with open-sourced core geometric analysis components.
@@ -14,6 +14,6 @@ While *VOIDCAT* itself remains proprietary and for [Randonautica]({filename}../b
## Repository
-* [Xenobalanus](https://codeberg.org/randogoth/xenobalanus)
+* [Xenobalanus](https://codeberg.org/randogoth/xenobalanus)

\ No newline at end of file
diff --git a/web/mc-pelican/templates/archives.html b/web/mc-pelican/templates/archives.html
index ce1202e..314ef9d 100644
--- a/web/mc-pelican/templates/archives.html
+++ b/web/mc-pelican/templates/archives.html
@@ -4,11 +4,26 @@
{% block content_title %}
{% endblock %}
+{% set icon_map = {
+ 'performance': 'nf-md-projector',
+ 'cinema': 'nf-md-theater',
+ 'event': 'nf-fa-masks_theater',
+ 'audio': 'nf-fa-music',
+ 'cooperation': 'nf-fa-group',
+ 'software': 'nf-md-code_braces',
+ 'workshop': 'nf-md-school',
+ 'blog': 'nf-fa-newspaper',
+ 'installation': 'nf-fa-cubes',
+ 'hardware': 'nf-cod-circuit_board'
+} %}
+
{% for article in dates if article.category != 'blog' %}
+ {% set icon_class = icon_map.get(article.category|string|lower) %}
+ {% if icon_class %}{% endif %}
{{ article.title }}
[{{ article.locale_date }}]
diff --git a/web/mc-pelican/templates/article.html b/web/mc-pelican/templates/article.html
index c1e9cc0..cffac80 100644
--- a/web/mc-pelican/templates/article.html
+++ b/web/mc-pelican/templates/article.html
@@ -15,10 +15,25 @@
{% endblock %}
+{% set icon_map = {
+ 'performance': 'nf-md-projector',
+ 'cinema': 'nf-md-theater',
+ 'event': 'nf-fa-masks_theater',
+ 'audio': 'nf-fa-music',
+ 'cooperation': 'nf-fa-group',
+ 'software': 'nf-md-code_braces',
+ 'workshop': 'nf-md-school',
+ 'blog': 'nf-fa-newspaper',
+ 'installation': 'nf-fa-cubes',
+ 'hardware': 'nf-cod-circuit_board'
+} %}
+
{% block content %}
+ {% set icon_class = icon_map.get(article.category|string|lower) %}
+ {% if icon_class %}{% endif %}
{{ article.title }}
{% import 'translations.html' as translations with context %}
diff --git a/web/mc-pelican/templates/categories.html b/web/mc-pelican/templates/categories.html
index e29be0c..aa95ae0 100644
--- a/web/mc-pelican/templates/categories.html
+++ b/web/mc-pelican/templates/categories.html
@@ -1,8 +1,27 @@
{% extends "base.html" %}
+
+{% set icon_map = {
+ 'performance': 'nf-md-projector',
+ 'cinema': 'nf-md-theater',
+ 'event': 'nf-fa-masks_theater',
+ 'audio': 'nf-fa-music',
+ 'cooperation': 'nf-fa-group',
+ 'software': 'nf-md-code_braces',
+ 'workshop': 'nf-md-school',
+ 'blog': 'nf-fa-newspaper',
+ 'installation': 'nf-fa-cubes',
+ 'hardware': 'nf-cod-circuit_board'
+} %}
+
{% block content %}
+
{% for category, articles in categories %}
- - {{ category }}
+ -
+ {% set icon_class = icon_map.get(category|string|lower) %}
+ {% if icon_class %}{% endif %}
+ {{ category }}
+
{% endfor %}
{% endblock %}
diff --git a/web/mc-pelican/templates/index.html b/web/mc-pelican/templates/index.html
index 64fdc75..1e46a07 100644
--- a/web/mc-pelican/templates/index.html
+++ b/web/mc-pelican/templates/index.html
@@ -4,11 +4,26 @@
{% block content_title %}
{% endblock %}
+{% set icon_map = {
+ 'performance': 'nf-md-projector',
+ 'cinema': 'nf-md-theater',
+ 'event': 'nf-fa-masks_theater',
+ 'audio': 'nf-fa-music',
+ 'cooperation': 'nf-fa-group',
+ 'software': 'nf-md-code_braces',
+ 'workshop': 'nf-md-school',
+ 'blog': 'nf-fa-newspaper',
+ 'installation': 'nf-fa-cubes',
+ 'hardware': 'nf-cod-circuit_board'
+} %}
+
{% for article in articles_page.object_list %}
+ {% set icon_class = icon_map.get(article.category|string|lower) %}
+ {% if icon_class %}{% endif %}
{{ article.title }}
[{{ article.locale_date }}]