mkdocs-flake
mkdocs-flake adds documentation targets for your project mkdocs documentation. The provided mkdocs distribution comes pre-packaged with the latest mkdocs-material and many useful plugins.
After integration, run nix build .#documentation
to build your documentation.
To serve the documentation locally with live-rebuilds, run nix run .#watch-documentation
Quick example how to integrate it into a flake:
{
description = "Description for the project";
inputs = {
flake-parts.url = "github:hercules-ci/flake-parts";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
# (1) add mkdocs-flake input
mkdocs-flake.url = "github:applicative-systems/mkdocs-flake";
};
outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } {
# (2) import mkdocs-flake module
imports = [
inputs.mkdocs-flake.flakeModules.default
];
systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" ];
perSystem = { config, self', inputs', pkgs, system, ... }: {
packages.default = pkgs.hello;
# (3) point mkdocs-flake to your mkdocs root folder
documentation.mkdocs-root = ./docs;
# (4) Build the docs:
# `nix build .#documentation`
# Run in watch mode for live-editing-rebuilding:
# `nix run .#watch-documentation`
};
};
}
For more information, please refer to the mkdocs-flake documentation: flake.parts integration.
Installation
To use these options, add to your flake inputs:
mkdocs-flake.url = "github:applicative-systems/mkdocs-flake";
and inside the mkFlake
:
imports = [
inputs.mkdocs-flake.flakeModule
];
Run nix flake lock
and you're set.
Options
perSystem.documentation.mkdocs-package
The mkdocs package to use.
Type: package
Default:
"mkdocs-flake.packages.\${system}.mkdocs"
Declared by:
perSystem.documentation.mkdocs-root
Path to your mkdocs documentation project with mkdocs.yml
Type: null or path
Default:
null
Declared by:
perSystem.documentation.strict
Whether to enable Build the documentation with --strict
See also mkdocs user guide about --strict
.
Type: boolean
Default:
false
Example:
true
Declared by: