{ pkgs, lib, modules, ... }: let options = lib.evalModules { modules = modules; specialArgs = { inherit pkgs lib; }; }; docs = pkgs.nixosOptionsDoc { # If we don't do this, we end up with _module.args on the generated options, which we do not want options = lib.filterAttrs (k: _: k != "_module") options.options; warningsAreErrors = false; }; asciidoc = docs.optionsAsciiDoc; in pkgs.stdenv.mkDerivation { name = "nixvim-docs"; src = asciidoc; buildInputs = [ pkgs.asciidoctor ]; phases = [ "buildPhase" ]; buildPhase = '' mkdir -p $out/share/doc cat < header.adoc = NixVim options This lists all the options available for NixVim. :toc: EOF cat header.adoc $src > tmp.adoc asciidoctor tmp.adoc -o $out/share/doc/index.html ''; }