{ description = "Description for the project"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-parts.url = "github:hercules-ci/flake-parts"; devshell.url = "github:numtide/devshell"; treefmt-nix.url = "github:numtide/treefmt-nix"; }; outputs = inputs@{ flake-parts, ... }: flake-parts.lib.mkFlake { inherit inputs; } { imports = [ inputs.devshell.flakeModule inputs.treefmt-nix.flakeModule ]; systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" ]; perSystem = { config, self', inputs', pkgs, system, ... }: { treefmt = { programs.nixfmt.enable = true; programs.prettier.enable = true; projectRootFile = "flake.nix"; }; devshells.default = { serviceGroups.marp.services.marp.command = "marp --watch"; commands = [ { help = "Build presentation and present"; name = "present"; command = "marp && xdg-open ./present/slides.html"; } ]; packages = [ pkgs.marp-cli config.treefmt.build.wrapper ]; }; }; }; }