{inputs, ...}: { perSystem = { config, pkgs, lib, ... }: let docs = import ../docs {inherit pkgs inputs lib;}; in { packages = { inherit (docs.manual) htmlOpenTool; # Documentation docs = docs.manual.html; docs-html = docs.manual.html; docs-manpages = docs.manPages; docs-json = docs.options.json; docs-linkcheck = let site = config.packages.docs; in pkgs.testers.lycheeLinkCheck { inherit site; remap = { "https://notashelf.github.io/nvf/" = site; }; extraConfig = { exclude = []; include_mail = true; include_verbatim = true; }; }; # Helper utility for building the HTML manual and opening it in the # browser with $BROWSER or using xdg-open as a fallback tool. # Adapted from Home-Manager, available under the MIT license. docs-html-wrapped = let xdg-open = lib.getExe' pkgs.xdg-utils "xdg-open"; docs-html = docs.manual.html + /share/doc/nvf; in pkgs.writeShellScriptBin "docs-html-wrapped" '' set -euo pipefail if [[ ! -v BROWSER || -z $BROWSER ]]; then for candidate in xdg-open open w3m; do BROWSER="$(type -P $candidate || true)" if [[ -x $BROWSER ]]; then break; fi done fi if [[ ! -v BROWSER || -z $BROWSER ]]; then echo "$0: unable to start a web browser; please set \$BROWSER" echo "$0: Trying xdg-open as a fallback" ${xdg-open} ${docs-html}/index.xhtml else echo "\$BROWSER is set. Attempting to open manual" exec "$BROWSER" "${docs-html}/index.xhtml" fi ''; # Exposed neovim configurations nix = config.legacyPackages.neovim-nix; maximal = config.legacyPackages.neovim-maximal; default = config.legacyPackages.neovim-nix; }; }; }