site: wrap with nix

This commit is contained in:
Johannes Kirschbauer
2025-10-06 14:30:52 +02:00
parent 70523f75fa
commit 7112f608a7
10 changed files with 1821 additions and 1753 deletions

View File

@@ -93,6 +93,7 @@
./clanServices/flake-module.nix
./devShell.nix
./docs/nix/flake-module.nix
./site/flake-module.nix
./flakeModules/demo_iso.nix
./flakeModules/flake-module.nix
./lib/filter-clan-core/flake-module.nix

8
site/.envrc Normal file
View File

@@ -0,0 +1,8 @@
# shellcheck shell=bash
source_up
mapfile -d '' -t nix_files < <(find ./nix -name "*.nix" -print0)
watch_file "${nix_files[@]}"
# Because we depend on nixpkgs sources, uploading to builders takes a long time
use flake .#site --builders ''

5
site/.gitignore vendored
View File

@@ -17,3 +17,8 @@ node_modules
# Vite
vite.config.js.timestamp-*
vite.config.ts.timestamp-*
# Generated docs
src/routes/docs/reference/options
src/routes/docs/reference/clan.core

View File

@@ -1,6 +1,3 @@
{
"plugins": {
"postcss-preset-env": {},
"cssnano": { "preset": "default" }
}
"plugins": {}
}

25
site/default.nix Normal file
View File

@@ -0,0 +1,25 @@
{
buildNpmPackage,
importNpmLock,
nodejs_latest,
module-docs,
}:
buildNpmPackage {
pname = "clan-site";
version = "0.0.1";
nodejs = nodejs_latest;
src = ./.;
npmDeps = importNpmLock {
npmRoot = ./.;
};
npmConfigHook = importNpmLock.npmConfigHook;
preBuild = ''
# Copy generated reference docs
cp -r ${module-docs}/reference/* src/routes/docs/reference
chmod +w -R src/routes/docs/reference
'';
}

12
site/flake-module.nix Normal file
View File

@@ -0,0 +1,12 @@
{
perSystem =
{ pkgs, self', ... }:
{
packages.site = pkgs.callPackage ./default.nix { inherit (self'.packages) module-docs; };
devShells.site = pkgs.mkShell {
shellHook = self'.packages.site.preBuild;
inputsFrom = [ self'.packages.site ];
};
};
}

11
site/package-lock.json generated
View File

@@ -8,6 +8,7 @@
"name": "clan-site",
"version": "0.0.1",
"devDependencies": {
"@fontsource-variable/geist": "^5.2.8",
"@sveltejs/adapter-static": "^3.0.10",
"@sveltejs/kit": "^2.43.2",
"@sveltejs/vite-plugin-svelte": "^6.2.0",
@@ -462,6 +463,16 @@
"node": ">=18"
}
},
"node_modules/@fontsource-variable/geist": {
"version": "5.2.8",
"resolved": "https://registry.npmjs.org/@fontsource-variable/geist/-/geist-5.2.8.tgz",
"integrity": "sha512-cJ6m9e+8MQ5dCYJsLylfZrgBh6KkG4bOLckB35Tr9J/EqdkEM6QllH5PxqP1dhTvFup+HtMRPuz9xOjxXJggxw==",
"dev": true,
"license": "OFL-1.1",
"funding": {
"url": "https://github.com/sponsors/ayuhito"
}
},
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.13",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",

View File

@@ -23,6 +23,8 @@
"svelte": "^5.39.5",
"svelte-check": "^4.3.2",
"typescript": "^5.9.2",
"vite": "^7.1.7"
}
"vite": "^7.1.7",
"@fontsource-variable/geist": "^5.2.8"
},
"dependencies": {}
}

View File

@@ -1,5 +1,7 @@
<script lang="ts">
import favicon from '$lib/assets/favicon.svg';
import "./index.css";
import favicon from "$lib/assets/favicon.svg";
let { children } = $props();
</script>

View File

@@ -0,0 +1,5 @@
@import "@fontsource-variable/geist";
body {
font-family: "Geist Variable";
}