64 lines
2 KiB
Nix
64 lines
2 KiB
Nix
{
|
|
description = "A site in nix?";
|
|
|
|
outputs = { self, nixpkgs, }:
|
|
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 = let run = import ./testing/run.nix pkgs;
|
|
in run [
|
|
./testing/md.test.nix
|
|
./testing/html.test.nix
|
|
./testing/elems.test.nix
|
|
./testing/site.test.nix
|
|
./testing/style.test.nix
|
|
];
|
|
|
|
watch = let w = import ./testing/watch.nix pkgs;
|
|
in w "nix run .#test --show-trace" "fx";
|
|
|
|
dev = let w = import ./testing/watch.nix pkgs;
|
|
in w "nix run .# --show-trace" "caddy";
|
|
};
|
|
};
|
|
}
|