aboutsummaryrefslogtreecommitdiff
path: root/www/html.nix
diff options
context:
space:
mode:
authorValentin <valentin@fricklerhandwerk.de>2025-12-09 17:48:21 +0100
committerValentin <valentin@fricklerhandwerk.de>2025-12-20 17:44:07 +0100
commit1a99a306ae044625e3f89e16d1d6f809ce8c12e0 (patch)
tree3a04bfee536d0cfe885e27dc7b916fd353380d5a /www/html.nix
parent9a5020deaed97df8ab1307068f34a382b2e24b31 (diff)
Website-Erzeugung aus Nixpkgs-Modul statt Paket
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]: <https://github.com/NixOS/nix/commit/f1b4663805a9dbcb1ace64ec110092d17c9155e0>
Diffstat (limited to 'www/html.nix')
-rw-r--r--www/html.nix57
1 files changed, 57 insertions, 0 deletions
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
+ );
+ };
+
+ };
+}