From 1a99a306ae044625e3f89e16d1d6f809ce8c12e0 Mon Sep 17 00:00:00 2001 From: Valentin Date: Tue, 9 Dec 2025 17:48:21 +0100 Subject: Website-Erzeugung aus Nixpkgs-Modul statt Paket MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Die Dateien für die Website mit Nix zu erzeugen ist zur Zeit der kleinste Schritt, um repetitive Muster weg zu abstrahieren. Alles andere bräuchte mehr Infrastruktur, während Nix bereits da ist und direkt verwendet werden kann. Es erlaubt jetzt einen nahtlosen Übergang zu einer strukturierteren Darstellung. Selbst falls das System sehr komplex wird, bevor es auf einen Anwendungsserver mit Datenbank usw. migriert werden kann, können im Prinzip Datentypen für die Sprache der Anwendung und sogar Nutzdaten im Zielformat aus den Modulsystem-Typen generiert werden. Das würde diese spätere Migration zumindest abmildern. Wichtig: Dateinamen dürfen keine Leerzeichen mehr enthalten, um genau zu sein siehe [0]. [0]: --- www/html.nix | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 www/html.nix (limited to 'www/html.nix') diff --git a/www/html.nix b/www/html.nix new file mode 100644 index 0000000..6e48e2f --- /dev/null +++ b/www/html.nix @@ -0,0 +1,57 @@ +{ self, ... }: +{ + perSystem = + { ... }: + { + websites.${self.domain} = + { lib, ... }: + let + inherit (lib) mkOption types; + in + { + files = + let + root = ./html; + files = lib.fileset.toList root; + redirects = + with lib; + mapAttrsToList + (name: value: { + name = head value.locations; + inherit value; + }) + { + kindertag = { + path = ./html/Kalender/Kindertag-in-der-Mehrwertkultur.html; + locations = [ + "Kalender/Kindertag-in-der-Mehrwertkultur.html" + "Kalender/Kindertag in der Mehrwertkultur.html" + ]; + }; + kinder-banner = { + path = ./html/Kalender/Kindertag-in-der-Mehrwertkultur_html_7312c2696b940296.png; + locations = [ + "Kalender/Kindertag-in-der-Mehrwertkultur_html_7312c2696b940296.png" + "Kalender/Kindertag in der Mehrwertkultur_html_7312c2696b940296.png" + ]; + }; + contraZt-logo = { + path = ./html/Kalender/Kindertag-in-der-Mehrwertkultur_html_290e08fdf9314385.jpg; + locations = [ + "Kalender/Kindertag-in-der-Mehrwertkultur_html_290e08fdf9314385.jpg" + "Kalender/Kindertag in der Mehrwertkultur_html_290e08fdf9314385.jpg" + ]; + }; + }; + in + lib.listToAttrs ( + redirects + ++ map (file: { + name = lib.path.removePrefix root file; + value = file; + }) files + ); + }; + + }; +} -- cgit v1.2.3 From ab36912ee135d4897730b31d6e767d51bcf54e40 Mon Sep 17 00:00:00 2001 From: Valentin Date: Tue, 16 Dec 2025 21:42:38 +0100 Subject: Titel auf allen Seiten aus Konfiguration generiert --- www/html.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'www/html.nix') diff --git a/www/html.nix b/www/html.nix index 6e48e2f..729ea12 100644 --- a/www/html.nix +++ b/www/html.nix @@ -9,10 +9,11 @@ inherit (lib) mkOption types; in { + title = "Stadtteilbeirat Heimfeld"; files = let root = ./html; - files = lib.fileset.toList root; + files = with lib.fileset; toList root; redirects = with lib; mapAttrsToList -- cgit v1.2.3 From 0efd609dd832b11c4e4e20c008edc1cc52dbfbd9 Mon Sep 17 00:00:00 2001 From: Valentin Date: Tue, 16 Dec 2025 23:21:41 +0100 Subject: Dateiliste verallgemeinert --- www/html.nix | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'www/html.nix') diff --git a/www/html.nix b/www/html.nix index 729ea12..97cf089 100644 --- a/www/html.nix +++ b/www/html.nix @@ -9,7 +9,6 @@ inherit (lib) mkOption types; in { - title = "Stadtteilbeirat Heimfeld"; files = let root = ./html; @@ -49,7 +48,7 @@ redirects ++ map (file: { name = lib.path.removePrefix root file; - value = file; + value = lib.mkDefault file; }) files ); }; -- cgit v1.2.3