{ description = "A site in nix?"; inputs = { tix.url = "git+https://git.tristans.cloud/tristan/tix"; }; outputs = { self, nixpkgs, tix }: let system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; }; nixite = import ./nixite/. { inherit pkgs; }; in nixite // { packages.${system} = { raw = nixite.mkSite (let readme = { name = "readme"; content = nixite.md.mdToPage ./README.md; }; markup = { "index.html" = with nixite.elems; let blue = nixite.style.component span "blue" { style = { color = "blue"; }; }; underblue = nixite.style.component blue "under" { style = { text-decoration = "underline"; }; }; in (Doc { } [ [ (title "Nixite") ] (main [ (a { href = nixite.site.link readme; } "Readme") (a "/blog" "blog") (List { } [ "item 1" "item 2" "item 3" ]) (p [ "check out my" (blue "blue span") "isn't it" (underblue { onclick = "alert(1)"; } "great!") ]) ]) ]); blog = nixite.md.readDir ./testing/blog; }; site = (nixite.site.prepare { favicon = ./testing/src/favicon.png; } markup); in site); default = nixite.serve self.packages.${system}.raw; test = tix.run [ ./testing/md.test.nix ./testing/html.test.nix ./testing/elems.test.nix ./testing/site.test.nix ./testing/style.test.nix ]; watch = tix.watch "nix run .#test --show-trace" "fx"; dev = tix.watch "nix run .# --show-trace" "caddy"; }; }; }