upgrade to latest astro and cleanup of unused pages
This commit is contained in:
parent
8bb9dc7464
commit
3b3302e992
3
.envrc
3
.envrc
|
@ -1,7 +1,6 @@
|
||||||
watch_file flake.nix flake.lock package.json yarn.lock nix/*.nix
|
watch_file flake.* *.lock nix/*.nix
|
||||||
|
|
||||||
use flake
|
use flake
|
||||||
|
|
||||||
yarn install
|
yarn install
|
||||||
|
|
||||||
yarn sync
|
yarn sync
|
|
@ -5,7 +5,6 @@ import tailwind from '@astrojs/tailwind';
|
||||||
import image from "@astrojs/image";
|
import image from "@astrojs/image";
|
||||||
import robotsTxt from 'astro-robots-txt';
|
import robotsTxt from 'astro-robots-txt';
|
||||||
import sitemap from '@astrojs/sitemap';
|
import sitemap from '@astrojs/sitemap';
|
||||||
import compress from 'astro-compress';
|
|
||||||
|
|
||||||
const mkPath = (name) => path.resolve(`./src/${name}`);
|
const mkPath = (name) => path.resolve(`./src/${name}`);
|
||||||
const external = ['svgo'];
|
const external = ['svgo'];
|
||||||
|
@ -18,7 +17,6 @@ const alias = {
|
||||||
'@utils': mkPath('utils'),
|
'@utils': mkPath('utils'),
|
||||||
};
|
};
|
||||||
|
|
||||||
// https://astro.build/config
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
site: "https://nix-hh.de",
|
site: "https://nix-hh.de",
|
||||||
integrations: [
|
integrations: [
|
||||||
|
@ -27,14 +25,10 @@ export default defineConfig({
|
||||||
image(),
|
image(),
|
||||||
sitemap(),
|
sitemap(),
|
||||||
robotsTxt(),
|
robotsTxt(),
|
||||||
compress(),
|
|
||||||
],
|
],
|
||||||
server: { port: 3001 },
|
server: { port: 3001 },
|
||||||
vite: {
|
vite: {
|
||||||
ssr: { external },
|
ssr: { external },
|
||||||
resolve: { alias },
|
resolve: { alias },
|
||||||
},
|
},
|
||||||
experimental: {
|
|
||||||
contentCollections: true,
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
|
|
183
flake.lock
183
flake.lock
|
@ -1,5 +1,28 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"alejandra": {
|
||||||
|
"inputs": {
|
||||||
|
"fenix": "fenix",
|
||||||
|
"flakeCompat": "flakeCompat",
|
||||||
|
"nixpkgs": [
|
||||||
|
"d2n",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1658427149,
|
||||||
|
"narHash": "sha256-ToD/1z/q5VHsLMrS2h96vjJoLho59eNRtknOUd19ey8=",
|
||||||
|
"owner": "kamadorueda",
|
||||||
|
"repo": "alejandra",
|
||||||
|
"rev": "f5a22afd2adfb249b4e68e0b33aa1f0fb73fb1be",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "kamadorueda",
|
||||||
|
"repo": "alejandra",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"crane": {
|
"crane": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -18,13 +41,12 @@
|
||||||
},
|
},
|
||||||
"d2n": {
|
"d2n": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"alejandra": "alejandra",
|
||||||
"all-cabal-json": [
|
"all-cabal-json": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"crane": "crane",
|
"crane": "crane",
|
||||||
"devshell": "devshell",
|
"devshell": "devshell",
|
||||||
"drv-parts": "drv-parts",
|
|
||||||
"flake-compat": "flake-compat",
|
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
"flake-utils-pre-commit": "flake-utils-pre-commit",
|
"flake-utils-pre-commit": "flake-utils-pre-commit",
|
||||||
"ghc-utils": "ghc-utils",
|
"ghc-utils": "ghc-utils",
|
||||||
|
@ -32,17 +54,16 @@
|
||||||
"mach-nix": "mach-nix",
|
"mach-nix": "mach-nix",
|
||||||
"nix-pypi-fetcher": "nix-pypi-fetcher",
|
"nix-pypi-fetcher": "nix-pypi-fetcher",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgsV1": "nixpkgsV1",
|
|
||||||
"poetry2nix": "poetry2nix",
|
"poetry2nix": "poetry2nix",
|
||||||
"pre-commit-hooks": "pre-commit-hooks",
|
"pre-commit-hooks": "pre-commit-hooks",
|
||||||
"pruned-racket-catalog": "pruned-racket-catalog"
|
"pruned-racket-catalog": "pruned-racket-catalog"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1680605243,
|
"lastModified": 1676992344,
|
||||||
"narHash": "sha256-dUrxj653kcLvjNKRI7NoTJoj+Q7G+vOYsl4iuwtnIWo=",
|
"narHash": "sha256-TEn5kEi/jL9Dt6O+ZZ7kQwnlAgEv0r4VgQZnav/cfV4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "dream2nix",
|
"repo": "dream2nix",
|
||||||
"rev": "34a80ab215f1f24068ea9c76f3a7e5bc19478653",
|
"rev": "db72710500a80bdf4589b6807d2491a4a0dae3ad",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -67,32 +88,26 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"drv-parts": {
|
"fenix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": [
|
|
||||||
"d2n",
|
|
||||||
"flake-compat"
|
|
||||||
],
|
|
||||||
"flake-parts": [
|
|
||||||
"d2n",
|
|
||||||
"flake-parts"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"d2n",
|
"d2n",
|
||||||
|
"alejandra",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
],
|
||||||
|
"rust-analyzer-src": "rust-analyzer-src"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1680172861,
|
"lastModified": 1657607339,
|
||||||
"narHash": "sha256-QMyI338xRxaHFDlCXdLCtgelGQX2PdlagZALky4ZXJ8=",
|
"narHash": "sha256-HaqoAwlbVVZH2n4P3jN2FFPMpVuhxDy1poNOR7kzODc=",
|
||||||
"owner": "davhau",
|
"owner": "nix-community",
|
||||||
"repo": "drv-parts",
|
"repo": "fenix",
|
||||||
"rev": "ced8a52f62b0a94244713df2225c05c85b416110",
|
"rev": "b814c83d9e6aa5a28d0cf356ecfdafb2505ad37d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "davhau",
|
"owner": "nix-community",
|
||||||
"repo": "drv-parts",
|
"repo": "fenix",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -112,22 +127,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_2": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1673956053,
|
|
||||||
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-parts": {
|
"flake-parts": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
|
@ -154,11 +153,11 @@
|
||||||
"nixpkgs-lib": "nixpkgs-lib"
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1680392223,
|
"lastModified": 1679737941,
|
||||||
"narHash": "sha256-n3g7QFr85lDODKt250rkZj2IFS3i4/8HBU2yKHO3tqw=",
|
"narHash": "sha256-srSD9CwsVPnUMsIZ7Kt/UegkKUEBcTyU1Rev7mO45S0=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "dcc36e45d054d7bb554c9cdab69093debd91a0b5",
|
"rev": "3502ee99d6dade045bdeaf7b0cd8ec703484c25c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -168,15 +167,12 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
|
||||||
"systems": "systems"
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681202837,
|
"lastModified": 1667395993,
|
||||||
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
|
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -200,18 +196,19 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_2": {
|
"flakeCompat": {
|
||||||
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1667395993,
|
"lastModified": 1650374568,
|
||||||
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
|
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
|
||||||
"owner": "numtide",
|
"owner": "edolstra",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-compat",
|
||||||
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
|
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "numtide",
|
"owner": "edolstra",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-compat",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -285,11 +282,11 @@
|
||||||
},
|
},
|
||||||
"nix-filter": {
|
"nix-filter": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681154353,
|
"lastModified": 1678109515,
|
||||||
"narHash": "sha256-MCJ5FHOlbfQRFwN0brqPbCunLEVw05D/3sRVoNVt2tI=",
|
"narHash": "sha256-C2X+qC80K2C1TOYZT8nabgo05Dw2HST/pSn6s+n6BO8=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "nix-filter",
|
"repo": "nix-filter",
|
||||||
"rev": "f529f42792ade8e32c4be274af6b6d60857fbee7",
|
"rev": "aa9ff6ce4a7f19af6415fb3721eaa513ea6c763c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -332,11 +329,11 @@
|
||||||
"nixpkgs-lib": {
|
"nixpkgs-lib": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"dir": "lib",
|
"dir": "lib",
|
||||||
"lastModified": 1680213900,
|
"lastModified": 1675183161,
|
||||||
"narHash": "sha256-cIDr5WZIj3EkKyCgj/6j3HBH4Jj1W296z7HTcWj1aMA=",
|
"narHash": "sha256-Zq8sNgAxDckpn7tJo7V1afRSk2eoVbu3OjI1QklGLNg=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "e3652e0735fbec227f342712f180f4f21f0594f2",
|
"rev": "e1e1b192c1a5aab2960bf0a0bd53a2e8124fa18e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -349,11 +346,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1678872516,
|
"lastModified": 1673800717,
|
||||||
"narHash": "sha256-/E1YwtMtFAu2KUQKV/1+KFuReYPANM2Rzehk84VxVoc=",
|
"narHash": "sha256-SFHraUqLSu5cC6IxTprex/nTsI81ZQAtDvlBvGDWfnA=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "9b8e5abb18324c7fe9f07cb100c3cd4a29cda8b8",
|
"rev": "2f9fd351ec37f5d479556cd48be4ca340da59b8f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -363,28 +360,13 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgsV1": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1678500271,
|
|
||||||
"narHash": "sha256-tRBLElf6f02HJGG0ZR7znMNFv/Uf7b2fFInpTHiHaSE=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "5eb98948b66de29f899c7fe27ae112a47964baf8",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"id": "nixpkgs",
|
|
||||||
"ref": "nixos-22.11",
|
|
||||||
"type": "indirect"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681753173,
|
"lastModified": 1677050843,
|
||||||
"narHash": "sha256-MrGmzZWLUqh2VstoikKLFFIELXm/lsf/G9U9zR96VD4=",
|
"narHash": "sha256-3fcFxn58eCtrXrVPeW/nAg6NR5wUERVEf8zOtjPDzuM=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "0a4206a51b386e5cda731e8ac78d76ad924c7125",
|
"rev": "9e0eed654c705c7cafe192a8eba1610217f70544",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -396,11 +378,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681303793,
|
"lastModified": 1671271357,
|
||||||
"narHash": "sha256-JEdQHsYuCfRL2PICHlOiH/2ue3DwoxUX7DJ6zZxZXFk=",
|
"narHash": "sha256-xRJdLbWK4v2SewmSStYrcLa0YGJpleufl44A19XSW8k=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "fe2ecaf706a5907b5e54d979fbde4924d84b65fc",
|
"rev": "40f79f003b6377bd2f4ed4027dde1f8f922995dd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -429,18 +411,18 @@
|
||||||
},
|
},
|
||||||
"pre-commit": {
|
"pre-commit": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat",
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils",
|
||||||
"gitignore": "gitignore",
|
"gitignore": "gitignore",
|
||||||
"nixpkgs": "nixpkgs_3",
|
"nixpkgs": "nixpkgs_3",
|
||||||
"nixpkgs-stable": "nixpkgs-stable"
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681413034,
|
"lastModified": 1676879534,
|
||||||
"narHash": "sha256-/t7OjNQcNkeWeSq/CFLYVBfm+IEnkjoSm9iKvArnUUI=",
|
"narHash": "sha256-HU4RXcwsAX1u7AUbGOBDxkYQkeODcn+HZjXqKa1y/hk=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "pre-commit-hooks.nix",
|
"repo": "pre-commit-hooks.nix",
|
||||||
"rev": "d3de8f69ca88fb6f8b09e5b598be5ac98d28ede5",
|
"rev": "c9495f017f67a11e9c9909b032dc7762dfc853cf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -495,24 +477,25 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"d2n": "d2n",
|
"d2n": "d2n",
|
||||||
"flake-parts": "flake-parts_2",
|
"flake-parts": "flake-parts_2",
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"nix-filter": "nix-filter",
|
"nix-filter": "nix-filter",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"pre-commit": "pre-commit"
|
"pre-commit": "pre-commit"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"rust-analyzer-src": {
|
||||||
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1657557289,
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
"narHash": "sha256-PRW+nUwuqNTRAEa83SfX+7g+g8nQ+2MMbasQ9nt6+UM=",
|
||||||
"owner": "nix-systems",
|
"owner": "rust-lang",
|
||||||
"repo": "default",
|
"repo": "rust-analyzer",
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
"rev": "caf23f29144b371035b864a1017dbc32573ad56d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-systems",
|
"owner": "rust-lang",
|
||||||
"repo": "default",
|
"ref": "nightly",
|
||||||
|
"repo": "rust-analyzer",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
18
flake.nix
18
flake.nix
|
@ -1,22 +1,19 @@
|
||||||
{
|
{
|
||||||
description = "Nix Hamburg User Group Flake";
|
description = "nobbz.dev - Website";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixpkgs-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs?ref=nixpkgs-unstable";
|
||||||
d2n.url = "github:nix-community/dream2nix";
|
d2n.url = "github:nix-community/dream2nix";
|
||||||
d2n.inputs.all-cabal-json.follows = "nixpkgs";
|
d2n.inputs.all-cabal-json.follows = "nixpkgs";
|
||||||
nix-filter.url = "github:numtide/nix-filter";
|
nix-filter.url = "github:numtide/nix-filter";
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
|
||||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||||
pre-commit.url = "github:cachix/pre-commit-hooks.nix";
|
pre-commit.url = "github:cachix/pre-commit-hooks.nix";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
d2n,
|
d2n,
|
||||||
self,
|
|
||||||
nix-filter,
|
nix-filter,
|
||||||
flake-parts,
|
flake-parts,
|
||||||
flake-utils,
|
|
||||||
pre-commit,
|
pre-commit,
|
||||||
...
|
...
|
||||||
} @ inputs: let
|
} @ inputs: let
|
||||||
|
@ -44,18 +41,11 @@
|
||||||
|
|
||||||
devShells.default = pkgs.mkShell {
|
devShells.default = pkgs.mkShell {
|
||||||
packages = builtins.attrValues {
|
packages = builtins.attrValues {
|
||||||
inherit (pkgs) nodejs yarn;
|
inherit (pkgs) yarn;
|
||||||
inherit (pkgs) alejandra nil;
|
inherit (pkgs) alejandra nil;
|
||||||
};
|
};
|
||||||
shellHook = config.pre-commit.installationScript;
|
# shellHook = config.pre-commit.installationScript;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
// flake-utils.lib.eachSystem ["aarch64-linux" "x86_64-linux"] (localSystem: {
|
|
||||||
hydraJobs = {
|
|
||||||
build = {
|
|
||||||
inherit (self.packages.${localSystem}) nix-hh-website;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ in {
|
||||||
dream2nix.inputs.self = {
|
dream2nix.inputs.self = {
|
||||||
source = filter {
|
source = filter {
|
||||||
root = ./..;
|
root = ./..;
|
||||||
|
|
||||||
include = [
|
include = [
|
||||||
(inDirectory "src")
|
(inDirectory "src")
|
||||||
(inDirectory "public")
|
(inDirectory "public")
|
||||||
|
@ -15,6 +16,7 @@ in {
|
||||||
../yarn.lock
|
../yarn.lock
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
projects.nix-hh-website = {
|
projects.nix-hh-website = {
|
||||||
name = "nix-hh-website";
|
name = "nix-hh-website";
|
||||||
subsystem = "nodejs";
|
subsystem = "nodejs";
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
"@fontsource/inter": "^4.5.15",
|
"@fontsource/inter": "^4.5.15",
|
||||||
"@tailwindcss/typography": "^0.5.9",
|
"@tailwindcss/typography": "^0.5.9",
|
||||||
"astro": "^2.2.0",
|
"astro": "^2.2.0",
|
||||||
"astro-compress": "^1.1.35",
|
|
||||||
"astro-feather-icons": "^1.0.2",
|
"astro-feather-icons": "^1.0.2",
|
||||||
"astro-forms": "^1.0.11",
|
"astro-forms": "^1.0.11",
|
||||||
"astro-icon": "^0.8.0",
|
"astro-icon": "^0.8.0",
|
||||||
|
|
|
@ -2,14 +2,5 @@
|
||||||
<p class="text-center text-sm text-slate-500">
|
<p class="text-center text-sm text-slate-500">
|
||||||
Copyright © {new Date().getFullYear()} Nix Hamburg User Group.
|
Copyright © {new Date().getFullYear()} Nix Hamburg User Group.
|
||||||
</p>
|
</p>
|
||||||
<!-- <p class="text-center text-xs text-slate-500 mt-1">
|
|
||||||
Served by <a
|
|
||||||
href="https://srx.dev"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener"
|
|
||||||
class="hover:underline">
|
|
||||||
srx.dev
|
|
||||||
</a>
|
|
||||||
</p> -->
|
|
||||||
<script defer data-domain="nix-hh.de" src="https://track.srx.dev/js/plausible.js"></script>
|
<script defer data-domain="nix-hh.de" src="https://track.srx.dev/js/plausible.js"></script>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
@ -1,45 +0,0 @@
|
||||||
---
|
|
||||||
import { Tick } from "@components/ui/icons";
|
|
||||||
import Link from "@components/ui/link.astro";
|
|
||||||
|
|
||||||
const { plan } = Astro.props;
|
|
||||||
---
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<div
|
|
||||||
class="flex flex-col w-full order-first lg:order-none border-2 border-[#D8DEE9] border-opacity-50 py-5 px-6 rounded-md">
|
|
||||||
<div class="text-center">
|
|
||||||
<h4 class="text-lg font-medium text-gray-400">{plan.name}</h4><p
|
|
||||||
class="mt-3 text-4xl font-bold text-black md:text-4xl">
|
|
||||||
{
|
|
||||||
plan.price && typeof plan.price === "object"
|
|
||||||
? plan.price.monthly
|
|
||||||
: plan.price
|
|
||||||
}
|
|
||||||
</p>
|
|
||||||
<!-- {
|
|
||||||
plan.price.original && (
|
|
||||||
<p class="mt-1 text-xl font-medium text-gray-400 line-through md:text-2xl">
|
|
||||||
{plan.price.original}
|
|
||||||
</p>
|
|
||||||
)
|
|
||||||
} -->
|
|
||||||
</div><ul class="grid mt-8 text-left gap-y-4">
|
|
||||||
{
|
|
||||||
plan.features.map((item) => (
|
|
||||||
<li class="flex items-start gap-3 text-gray-800">
|
|
||||||
<Tick class="w-6 h-6" />
|
|
||||||
<span>{item}</span>
|
|
||||||
</li>
|
|
||||||
))
|
|
||||||
}
|
|
||||||
</ul><div class="flex mt-8">
|
|
||||||
<Link
|
|
||||||
href={plan.button.link || "#"}
|
|
||||||
block
|
|
||||||
style={plan.popular ? "primary" : "outline"}>
|
|
||||||
{plan.button.text || "Get Started"}
|
|
||||||
</Link>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
|
@ -1,62 +0,0 @@
|
||||||
---
|
|
||||||
import { getCollection } from "astro:content";
|
|
||||||
import { Picture } from "@astrojs/image/components";
|
|
||||||
import Layout from "@layouts/Layout.astro";
|
|
||||||
import Container from "@components/container.astro";
|
|
||||||
import Sectionhead from "@components/sectionhead.astro";
|
|
||||||
|
|
||||||
// Filter team entries with 'draft: false' & date before current date
|
|
||||||
const publishedTeamMembers = await getCollection("team", ({ data }) => {
|
|
||||||
return !data.draft && data.publishDate < new Date();
|
|
||||||
});
|
|
||||||
---
|
|
||||||
|
|
||||||
<Layout title="About">
|
|
||||||
<Container>
|
|
||||||
<Sectionhead>
|
|
||||||
<Fragment slot="title">About</Fragment>
|
|
||||||
<Fragment slot="desc">We are a small passionate team.</Fragment>
|
|
||||||
</Sectionhead>
|
|
||||||
|
|
||||||
<div class="flex flex-col gap-3 mx-auto max-w-4xl mt-16">
|
|
||||||
<h2 class="font-bold text-3xl text-gray-800">
|
|
||||||
Empowering the world with Astro.
|
|
||||||
</h2>
|
|
||||||
<p class="text-lg leading-relaxed text-slate-500">
|
|
||||||
We're a multi-cultural team from around the world! We come from diverse
|
|
||||||
backgrounds, bringing different personalities, experiences and skills to
|
|
||||||
the job. This is what makes our team so special.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="grid md:grid-cols-3 gap-10 mx-auto max-w-4xl mt-12">
|
|
||||||
{
|
|
||||||
publishedTeamMembers.map((teamMemberEntry) => (
|
|
||||||
<div class="group">
|
|
||||||
<div class="w-full aspect-square">
|
|
||||||
<Picture
|
|
||||||
src={teamMemberEntry.data.avatar.src}
|
|
||||||
alt={teamMemberEntry.data.avatar.alt}
|
|
||||||
sizes="(max-width: 800px) 100vw, 400px"
|
|
||||||
widths={[200, 400]}
|
|
||||||
aspectRatio="1:1"
|
|
||||||
background="#ffffff"
|
|
||||||
fit="cover"
|
|
||||||
position="center"
|
|
||||||
class="w-full rounded-md rounded transition group-hover:-translate-y-1 group-hover:shadow-xl"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="mt-4 text-center">
|
|
||||||
<h2 class="text-lg text-gray-800">
|
|
||||||
{teamMemberEntry.data.name}
|
|
||||||
</h2>
|
|
||||||
<h3 class="text-sm text-slate-500">
|
|
||||||
{teamMemberEntry.data.title}
|
|
||||||
</h3>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
))
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
</Container>
|
|
||||||
</Layout>
|
|
|
@ -1,76 +0,0 @@
|
||||||
---
|
|
||||||
import { getCollection } from "astro:content";
|
|
||||||
import { Picture } from "@astrojs/image/components";
|
|
||||||
import Layout from "@layouts/Layout.astro";
|
|
||||||
import Container from "@components/container.astro";
|
|
||||||
import Sectionhead from "@components/sectionhead.astro";
|
|
||||||
|
|
||||||
// Filter blog entries with 'draft: false' & date before current date
|
|
||||||
const publishedBlogEntries = await getCollection("blog", ({ data }) => {
|
|
||||||
return !data.draft && data.publishDate < new Date();
|
|
||||||
});
|
|
||||||
|
|
||||||
// Sort content entries by publication date
|
|
||||||
publishedBlogEntries.sort(function (a, b) {
|
|
||||||
return b.data.publishDate.valueOf() - a.data.publishDate.valueOf();
|
|
||||||
});
|
|
||||||
---
|
|
||||||
|
|
||||||
<Layout title="Blog">
|
|
||||||
<Container>
|
|
||||||
<Sectionhead>
|
|
||||||
<Fragment slot="title">Our Blog</Fragment>
|
|
||||||
<Fragment slot="desc">
|
|
||||||
We write about building startups and thoughts going on our mind.
|
|
||||||
</Fragment>
|
|
||||||
</Sectionhead>
|
|
||||||
<main class="mt-16">
|
|
||||||
<ul class="grid gap-16 max-w-4xl mx-auto">
|
|
||||||
{
|
|
||||||
publishedBlogEntries.map((blogPostEntry, index) => (
|
|
||||||
<li>
|
|
||||||
<a href={`/blog/${blogPostEntry.slug}`}>
|
|
||||||
<div class="grid md:grid-cols-2 gap-5 md:gap-10 items-center">
|
|
||||||
<Picture
|
|
||||||
src={blogPostEntry.data.image.src}
|
|
||||||
alt={blogPostEntry.data.image.alt}
|
|
||||||
sizes="(max-width: 800px) 100vw, 800px"
|
|
||||||
widths={[200, 400, 800]}
|
|
||||||
aspectRatio="16:9"
|
|
||||||
background="#ffffff"
|
|
||||||
fit="cover"
|
|
||||||
position="center"
|
|
||||||
loading={index <= 2 ? "eager" : "lazy"}
|
|
||||||
decoding={index <= 2 ? "sync" : "async"}
|
|
||||||
class="w-full rounded-md"
|
|
||||||
/>
|
|
||||||
<div>
|
|
||||||
<span class="text-blue-400 uppercase tracking-wider text-sm font-medium">
|
|
||||||
{blogPostEntry.data.category}
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<h2 class="text-3xl font-semibold leading-snug tracking-tight mt-1 ">
|
|
||||||
{blogPostEntry.data.title}
|
|
||||||
</h2>
|
|
||||||
|
|
||||||
<div class="flex gap-2 mt-3">
|
|
||||||
<span class="text-gray-400">
|
|
||||||
{blogPostEntry.data.author}
|
|
||||||
</span>
|
|
||||||
<span class="text-gray-400">• </span>
|
|
||||||
<time
|
|
||||||
class="text-gray-400"
|
|
||||||
datetime={blogPostEntry.data.publishDate.toISOString()}>
|
|
||||||
{blogPostEntry.data.publishDate.toDateString()}
|
|
||||||
</time>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
))
|
|
||||||
}
|
|
||||||
</ul>
|
|
||||||
</main>
|
|
||||||
</Container>
|
|
||||||
</Layout>
|
|
|
@ -1,62 +0,0 @@
|
||||||
---
|
|
||||||
import { getCollection } from "astro:content";
|
|
||||||
import Layout from "@layouts/Layout.astro";
|
|
||||||
import Container from "@components/container.astro";
|
|
||||||
|
|
||||||
// Generate a new path for every collection entry
|
|
||||||
export async function getStaticPaths() {
|
|
||||||
const blogEntries = await getCollection("blog");
|
|
||||||
return blogEntries.map((entry) => ({
|
|
||||||
params: { slug: entry.slug },
|
|
||||||
props: { entry },
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get the entry directly from the prop on render
|
|
||||||
const { entry } = Astro.props;
|
|
||||||
const { Content } = await entry.render();
|
|
||||||
---
|
|
||||||
|
|
||||||
<Layout title={entry.data.title}>
|
|
||||||
<Container>
|
|
||||||
<div class="mx-auto max-w-[735px] mt-14">
|
|
||||||
<span class="text-blue-400 uppercase tracking-wider text-sm font-medium">
|
|
||||||
{entry.data.category}
|
|
||||||
</span>
|
|
||||||
<h1
|
|
||||||
class="text-4xl lg:text-5xl font-bold lg:tracking-tight mt-1 lg:leading-tight">
|
|
||||||
{entry.data.title}
|
|
||||||
</h1>
|
|
||||||
<div class="flex gap-2 mt-3 items-center flex-wrap md:flex-nowrap">
|
|
||||||
<span class="text-gray-400">
|
|
||||||
{entry.data.author}
|
|
||||||
</span>
|
|
||||||
<span class="text-gray-400">•</span>
|
|
||||||
<time
|
|
||||||
class="text-gray-400"
|
|
||||||
datetime={entry.data.publishDate.toISOString()}>
|
|
||||||
{entry.data.publishDate.toDateString()}
|
|
||||||
</time>
|
|
||||||
<span class="text-gray-400 hidden md:block">•</span>
|
|
||||||
<div class="w-full md:w-auto flex flex-wrap gap-3">
|
|
||||||
{
|
|
||||||
entry.data.tags.map((tag) => (
|
|
||||||
<span class="text-sm text-gray-500">#{tag}</span>
|
|
||||||
))
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="mx-auto prose prose-lg mt-6">
|
|
||||||
<Content />
|
|
||||||
</div>
|
|
||||||
<div class="text-center mt-8">
|
|
||||||
<a
|
|
||||||
href="/blog"
|
|
||||||
class="bg-gray-100 px-5 py-3 rounded-md hover:bg-gray-200 transition"
|
|
||||||
>← Back to Blog</a
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</Container>
|
|
||||||
</Layout>
|
|
|
@ -1,80 +0,0 @@
|
||||||
---
|
|
||||||
import Layout from "@layouts/Layout.astro";
|
|
||||||
import Container from "@components/container.astro";
|
|
||||||
import Sectionhead from "@components/sectionhead.astro";
|
|
||||||
import Pricing from "@components/pricing.astro";
|
|
||||||
|
|
||||||
const pricing = [
|
|
||||||
{
|
|
||||||
name: "Personal",
|
|
||||||
price: "Free",
|
|
||||||
popular: false,
|
|
||||||
features: [
|
|
||||||
"Lifetime free",
|
|
||||||
"Up to 3 users",
|
|
||||||
"Unlimited Pages",
|
|
||||||
"Astro Sub domain",
|
|
||||||
"Basic Integrations",
|
|
||||||
"Community Support",
|
|
||||||
],
|
|
||||||
button: {
|
|
||||||
text: "Get Started",
|
|
||||||
link: "/",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Startup",
|
|
||||||
price: {
|
|
||||||
monthly: "$19",
|
|
||||||
annual: "$16",
|
|
||||||
discount: "10%",
|
|
||||||
original: "$24",
|
|
||||||
},
|
|
||||||
popular: true,
|
|
||||||
features: [
|
|
||||||
"All Free Features",
|
|
||||||
"Up to 20 users",
|
|
||||||
"20 Custom domains",
|
|
||||||
"Unlimited Collaborators",
|
|
||||||
"Advanced Integrations",
|
|
||||||
"Priority Support",
|
|
||||||
],
|
|
||||||
button: {
|
|
||||||
text: "Get Started",
|
|
||||||
link: "#",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Enterprise",
|
|
||||||
price: "Custom",
|
|
||||||
popular: false,
|
|
||||||
features: [
|
|
||||||
"All Pro Features",
|
|
||||||
"Unlimited Custom domains",
|
|
||||||
"99.99% Uptime SLA",
|
|
||||||
"SAML & SSO Integration",
|
|
||||||
"Dedicated Account Manager",
|
|
||||||
"24/7 Phone Support",
|
|
||||||
],
|
|
||||||
button: {
|
|
||||||
text: "Contact us",
|
|
||||||
link: "/contact",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
];
|
|
||||||
---
|
|
||||||
|
|
||||||
<Layout title="Pricing">
|
|
||||||
<Container>
|
|
||||||
<Sectionhead>
|
|
||||||
<Fragment slot="title">Pricing</Fragment>
|
|
||||||
<Fragment slot="desc"
|
|
||||||
>Simple & Predictable pricing. No Surprises.</Fragment
|
|
||||||
>
|
|
||||||
</Sectionhead>
|
|
||||||
|
|
||||||
<div class="grid md:grid-cols-3 gap-10 mx-auto max-w-screen-lg mt-12">
|
|
||||||
{pricing.map((item) => <Pricing plan={item} />)}
|
|
||||||
</div>
|
|
||||||
</Container>
|
|
||||||
</Layout>
|
|
|
@ -7,6 +7,7 @@
|
||||||
"moduleResolution": "node",
|
"moduleResolution": "node",
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"isolatedModules": true,
|
"isolatedModules": true,
|
||||||
"strictNullChecks": true
|
"strictNullChecks": true,
|
||||||
|
"allowJs": true
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue