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 ./clanServices/flake-module.nix
./devShell.nix ./devShell.nix
./docs/nix/flake-module.nix ./docs/nix/flake-module.nix
./site/flake-module.nix
./flakeModules/demo_iso.nix ./flakeModules/demo_iso.nix
./flakeModules/flake-module.nix ./flakeModules/flake-module.nix
./lib/filter-clan-core/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
vite.config.js.timestamp-* vite.config.js.timestamp-*
vite.config.ts.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": { "plugins": {}
"postcss-preset-env": {},
"cssnano": { "preset": "default" }
}
} }

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 ];
};
};
}

3451
site/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,28 +1,30 @@
{ {
"name": "clan-site", "name": "clan-site",
"private": true, "private": true,
"version": "0.0.1", "version": "0.0.1",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite dev", "dev": "vite dev",
"build": "vite build", "build": "vite build",
"preview": "vite preview", "preview": "vite preview",
"prepare": "svelte-kit sync || echo ''", "prepare": "svelte-kit sync || echo ''",
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
"format": "prettier --write .", "format": "prettier --write .",
"lint": "prettier --check ." "lint": "prettier --check ."
}, },
"devDependencies": { "devDependencies": {
"@sveltejs/adapter-static": "^3.0.10", "@sveltejs/adapter-static": "^3.0.10",
"@sveltejs/kit": "^2.43.2", "@sveltejs/kit": "^2.43.2",
"@sveltejs/vite-plugin-svelte": "^6.2.0", "@sveltejs/vite-plugin-svelte": "^6.2.0",
"mdsvex": "^0.12.6", "mdsvex": "^0.12.6",
"prettier": "^3.6.2", "prettier": "^3.6.2",
"prettier-plugin-svelte": "^3.4.0", "prettier-plugin-svelte": "^3.4.0",
"svelte": "^5.39.5", "svelte": "^5.39.5",
"svelte-check": "^4.3.2", "svelte-check": "^4.3.2",
"typescript": "^5.9.2", "typescript": "^5.9.2",
"vite": "^7.1.7" "vite": "^7.1.7",
} "@fontsource-variable/geist": "^5.2.8"
},
"dependencies": {}
} }

View File

@@ -1,11 +1,13 @@
<script lang="ts"> <script lang="ts">
import favicon from '$lib/assets/favicon.svg'; import "./index.css";
let { children } = $props(); import favicon from "$lib/assets/favicon.svg";
let { children } = $props();
</script> </script>
<svelte:head> <svelte:head>
<link rel="icon" href={favicon} /> <link rel="icon" href={favicon} />
</svelte:head> </svelte:head>
{@render children?.()} {@render children?.()}

View File

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