From bd3e249b1b9e3e17a3877e2c3b0757f0f865560a Mon Sep 17 00:00:00 2001 From: Astro Date: Sat, 22 Oct 2022 21:02:38 +0200 Subject: [PATCH] pkgs/homepage: init --- nix/pkgs/default.nix | 6 ++- nix/pkgs/homepage/default.nix | 52 ++++++++++++++++++ nix/pkgs/homepage/figure.html | 4 ++ nix/pkgs/homepage/footer.html | 14 +++++ nix/pkgs/homepage/header.html | 31 +++++++++++ nix/pkgs/homepage/src/background.svg | 61 +++++++++++++++++++++ nix/pkgs/homepage/src/style.css | 78 +++++++++++++++++++++++++++ nix/pkgs/homepage/src/zw.png | Bin 0 -> 21643 bytes nix/pkgs/vlan-report.nix | 10 ++-- 9 files changed, 251 insertions(+), 5 deletions(-) create mode 100644 nix/pkgs/homepage/default.nix create mode 100644 nix/pkgs/homepage/figure.html create mode 100644 nix/pkgs/homepage/footer.html create mode 100644 nix/pkgs/homepage/header.html create mode 100644 nix/pkgs/homepage/src/background.svg create mode 100644 nix/pkgs/homepage/src/style.css create mode 100644 nix/pkgs/homepage/src/zw.png diff --git a/nix/pkgs/default.nix b/nix/pkgs/default.nix index 3645b8b..a8ab81d 100644 --- a/nix/pkgs/default.nix +++ b/nix/pkgs/default.nix @@ -103,10 +103,14 @@ let vlan-report = import ./vlan-report.nix { inherit self nixpkgs system; }; + + homepage = pkgs.callPackage ./homepage { + inherit self; + }; in rootfs-packages // vm-packages // device-templates // openwrt-packages // network-graphs // network-cypher-graphs // starlink // subnetplans // { inherit export-openwrt-models export-config dns-slaves encrypt-secrets decrypt-secrets switch-to-production - vlan-report + homepage vlan-report ; } diff --git a/nix/pkgs/homepage/default.nix b/nix/pkgs/homepage/default.nix new file mode 100644 index 000000000..906a424 --- /dev/null +++ b/nix/pkgs/homepage/default.nix @@ -0,0 +1,52 @@ +{ self +, system +, substituteAll +, stdenv +, pandoc +}: + +let + + inherit (self.packages.${system}) network-graphs subnetplans vlan-report; + +in +stdenv.mkDerivation { + pname = "zentralwerk-network-homepage"; + version = self.lastModifiedDate; + + src = ./src; + + nativeBuildInputs = [ + pandoc + ]; + buildPhase = '' + pandoc -t html ${../../../doc/hello.md} > index.html + pandoc -t html ${vlan-report} > vlan-report.html + ln -s ${substituteAll { + src = ./figure.html; + img = "physical.png"; + caption = "Physikalische Netzwerkstruktur"; + }} physical.html + ln -s ${substituteAll { + src = ./figure.html; + img = "logical.png"; + caption = "Logische Netzwerkstruktur"; + }} logical.html + + ln -s ${subnetplans}/share/doc/zentralwerk/* . + for F in *.html; do + cat ${./header.html} "$F" ${./footer.html} > "$F.new" + rm "$F" + mv "$F.new" "$F" + done + ''; + + installPhase = '' + DIR=$out/share/doc/zentralwerk/www + mkdir -p $DIR + + ln -s ${network-graphs}/share/doc/zentralwerk/* $DIR/ + ln -s ${../../../doc/core.png} $DIR/core.png + cp *.{html,css,png,svg} $DIR/ + ''; +} diff --git a/nix/pkgs/homepage/figure.html b/nix/pkgs/homepage/figure.html new file mode 100644 index 000000000..5e490c2 --- /dev/null +++ b/nix/pkgs/homepage/figure.html @@ -0,0 +1,4 @@ +
+ @caption@ +
@caption@
+
diff --git a/nix/pkgs/homepage/footer.html b/nix/pkgs/homepage/footer.html new file mode 100644 index 000000000..bccce69 --- /dev/null +++ b/nix/pkgs/homepage/footer.html @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/nix/pkgs/homepage/header.html b/nix/pkgs/homepage/header.html new file mode 100644 index 000000000..195abec --- /dev/null +++ b/nix/pkgs/homepage/header.html @@ -0,0 +1,31 @@ + + + + zentralwerk.org + + + + + + + + + + + + +
+

zentralwerk-network

+ +
+ +
diff --git a/nix/pkgs/homepage/src/background.svg b/nix/pkgs/homepage/src/background.svg new file mode 100644 index 000000000..35ba299 --- /dev/null +++ b/nix/pkgs/homepage/src/background.svg @@ -0,0 +1,61 @@ + + + + + + + + + + diff --git a/nix/pkgs/homepage/src/style.css b/nix/pkgs/homepage/src/style.css new file mode 100644 index 000000000..7ee362c --- /dev/null +++ b/nix/pkgs/homepage/src/style.css @@ -0,0 +1,78 @@ +body { + margin: 0; + padding: 0; + background: #AF1F00 url('background.svg') fixed no-repeat center/100%; + color: #FFEF00; + font-family: sans-serif; + display: flex; + flex-direction: column; + justify-content: space-between; + min-height: 100vh; +} + +a { + text-decoration: none; + font-weight: bold; + color: #CF3F1F; +} + +a:visited { + color: #AF1F00; +} + +header, footer { + background-color: #FFEF00; + color: #AF1F00; + text-align: center; +} +header { + margin: 0 0 3rem; + border-bottom: 1rem solid #DFCF00; +} +header h1 { + margin: 0.5rem 0; + padding: 0rem 2rem; + font-family: serif; +} +footer { + margin: 3rem 0 0; +} +footer p { + margin: 0.3rem 0; +} +nav ul { + margin: 0.3rem 0; + padding: 0; + list-style-type: none; +} +nav ul li { + display: inline-block; + margin: 0 2rem; + padding: 0; +} + +main { + min-width: 50vh; + max-width: 60rem; + margin: 1rem auto; + padding: 1.5rem 4rem; + background: #FFF; + color: #111; + border-top: 1rem solid #EFDF00; + border-left: 1rem solid #EFDF00; + border-right: 1.5rem solid #DFCF00; + border-bottom: 1.5rem solid #DFCF00; + overflow: auto; +} + +main figure { + text-align: center; +} + +main figure img { + max-width: 100%; +} + +main table { + font-size: 75%; +} diff --git a/nix/pkgs/homepage/src/zw.png b/nix/pkgs/homepage/src/zw.png new file mode 100644 index 0000000000000000000000000000000000000000..c02efe789eefa4c8d08902becc49d9084a2848b2 GIT binary patch literal 21643 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 z