simple nix module documentation wrapper
flake.nix | ||
LICENSE | ||
RANT.md | ||
README.md |
UNF
unf
is the simplest possible way to generate documentation for a nix module.
given a few straightforward parameters, its lib
provides documentation outputs for:
- a full documentation website (
html
, via ndg) - commonmark (
md
) json
yaml
toml
- rudimentary
xml
- raw
nix
attrs
here's how it works:
# in your flake
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
unf.url = "git+https://git.atagen.co/atagen/unf";
};
outputs = { self, nixpkgs, unf }: {
packages.${system}.docs = unf.lib.html {
# a reference to your flake's self, for path replacement
inherit self;
# an instance of nixpkgs, required for evaluating the raw options
pkgs = nixpkgs.legacyPackages.${system};
# the name of your project, for page title etc
projectName = "unf";
# the intended base path for files referred to by your docs, ie. your public repo
newPath = "https://git.atagen.co/atagen/unf";
# any specialArgs you want in the module system while evaluating your options
specialArgs = { goodDx = true; };
# the modules you wish to document
modules = [ ./nix/interface.nix ];
# any options the user wishes to pass to nixosOptionsDoc
userOpts = { warningsAreErrors = false; };
};
};
}
# in your shell
$ nix build .#docs
and that's it.
enjoy !
if you are looking for the old readme, it is here