diff --git a/.vscode/settings.json b/.vscode/settings.json index 7d26a4c..81eef06 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,4 +3,4 @@ "latex-workshop.latex.recipe.default": "latexmk (lualatex)", "gitlens.codeLens.authors.enabled": false, "gitlens.codeLens.recentChange.enabled": false, -} \ No newline at end of file +} diff --git a/flake.lock b/flake.lock index da7649b..5419206 100644 --- a/flake.lock +++ b/flake.lock @@ -1,27 +1,32 @@ { "nodes": { - "flake-utils": { + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "nixpkgs" + ] + }, "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "lastModified": 1727826117, + "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "hercules-ci", + "repo": "flake-parts", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1673796341, - "narHash": "sha256-1kZi9OkukpNmOaPY7S5/+SlCDOuYnP3HkXHvNDyLQcc=", + "lastModified": 1728492678, + "narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6dccdc458512abce8d19f74195bb20fdb067df50", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", "type": "github" }, "original": { @@ -33,8 +38,24 @@ }, "root": { "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" + "flake-parts": "flake-parts", + "nixpkgs": "nixpkgs", + "systems": "systems" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" } } }, diff --git a/flake.nix b/flake.nix index 2ac2f56..ec887f5 100644 --- a/flake.nix +++ b/flake.nix @@ -1,17 +1,51 @@ { - description = "Biblio proj long"; - inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - flake-utils.url = "github:numtide/flake-utils"; + flake-parts = { + url = "github:hercules-ci/flake-parts"; + inputs.nixpkgs-lib.follows = "nixpkgs"; + }; + systems.url = "github:nix-systems/default"; }; - outputs = { self, nixpkgs, flake-utils }: - flake-utils.lib.eachDefaultSystem (system: - let pkgs = nixpkgs.legacyPackages.${system}; - in { - devShell = pkgs.mkShell { - buildInputs = with pkgs; [ texlive.combined.scheme-full nodejs ]; + outputs = {flake-parts, ...} @ inputs: + flake-parts.lib.mkFlake {inherit inputs;} { + systems = import inputs.systems; + + perSystem = { + pkgs, + system, + ... + }: rec { + devShells.default = pkgs.mkShell { + packages = packages.slides.nativeBuildInputs; }; - }); + + packages.slides = pkgs.stdenvNoCC.mkDerivation rec { + name = "slides"; + + src = ./.; # because slides/assets is a symlink + + npmRoot = "slides"; + npmDeps = pkgs.fetchNpmDeps { + src = "${src}/slides"; + hash = "sha256-GJ10or/LERFOsBG6CqnRFXnXSEZB7+0C5CV6t8X/Um8="; + }; + + nativeBuildInputs = [ + pkgs.npmHooks.npmConfigHook + pkgs.nodejs + ]; + + buildPhase = '' + cd slides + npm run build + ''; + + installPhase = '' + mv dist $out + ''; + }; + }; + }; } diff --git a/slides/package.json b/slides/package.json index 2fa2852..e60bd7c 100644 --- a/slides/package.json +++ b/slides/package.json @@ -3,5 +3,8 @@ "@slidev/cli": "^0.42.9", "@slidev/theme-default": "^0.21.2", "slidev-theme-academic": "^1.1.3" + }, + "scripts": { + "build": "slidev build slides.md" } }