docs: add nuschtosSearch to book
All checks were successful
/ check (push) Successful in 9s
/ check-renovaterc (push) Successful in 3s
/ build-packages (push) Successful in 13s
/ build-vm (push) Successful in 2s
/ report-size (push) Successful in 4s

This provides a nice option search.
This commit is contained in:
Jalil David Salamé Messina 2025-03-22 01:28:33 +01:00
parent 6116711cbd
commit 843cfda2ad
Signed by: jalil
GPG key ID: F016B9E770737A0B
5 changed files with 101 additions and 31 deletions

View file

@ -1,46 +1,50 @@
{ lib, inputs, ... }:
{ lib, ... }:
{
perSystem =
{ pkgs, ... }:
{ inputs', pkgs, ... }:
{
packages =
let
modules = ../modules;
filterVisible =
toplevelOption: option:
option // { visible = option.visible && builtins.elemAt option.loc 0 == toplevelOption; };
home-eval = lib.evalModules {
modules = [ "${modules}/hm/options.nix" ];
specialArgs = {
inherit pkgs;
genOptionsDoc =
toplevelOption: module:
pkgs.nixosOptionsDoc {
inherit (lib.evalModules { modules = [ module ]; }) options;
transformOptions = filterVisible toplevelOption;
};
mkScope = name: options: {
inherit name;
optionsJSON = "${options.optionsJSON}/share/doc/nixos/options.json";
urlPrefix = "https://github.com/jalil-salame/configuration.nix/blob/main/";
};
nvim-eval = lib.evalModules { modules = [ "${modules}/nixvim/options.nix" ]; };
nixos-eval = lib.evalModules { modules = [ "${modules}/nixos/options.nix" ]; };
home-markdown =
(pkgs.nixosOptionsDoc {
inherit (home-eval) options;
transformOptions = filterVisible "jhome";
}).optionsCommonMark;
nvim-markdown =
(pkgs.nixosOptionsDoc {
inherit (nvim-eval) options;
transformOptions = filterVisible "jhome";
}).optionsCommonMark;
nixos-markdown =
(pkgs.nixosOptionsDoc {
inherit (nixos-eval) options;
transformOptions = filterVisible "jconfig";
}).optionsCommonMark;
search = inputs'.nuschtosSearch.packages.mkMultiSearch {
title = "Search Jalil'\"'\"'s configuration.nix";
baseHref = "/";
scopes = [
(mkScope "NixOS" nixos)
(mkScope "Home-Manager" home)
(mkScope "NixVIM" nvim)
];
};
home = genOptionsDoc "jhome" ../modules/hm/options.nix;
nvim = genOptionsDoc "jhome" ../modules/nixvim/options.nix;
nixos = genOptionsDoc "jconfig" ../modules/nixos/options.nix;
nixos-markdown = nixos.optionsCommonMark;
home-markdown = home.optionsCommonMark;
nvim-markdown = nvim.optionsCommonMark;
in
{
inherit search;
docs-home-markdown = home-markdown;
docs-nixos-markdown = nixos-markdown;
docs-nvim-markdown = nvim-markdown;
# Documentation
docs = pkgs.stdenvNoCC.mkDerivation {
name = "nixos-configuration-book";
src = inputs.self + "/docs";
src = ../docs;
patchPhase = ''
cleanup_md() {
@ -53,7 +57,9 @@
cleanup_md ${home-markdown} >> ./src/home-options.md
cleanup_md ${nvim-markdown} >> ./src/nvim-options.md
cleanup_md ${nixos-markdown} >> ./src/nixos-options.md
'';
# link search site
ln -s "${search.override { baseHref = "/configuration.nix/search/"; }}" ./src/search
''; # FIXME: only add the `/configuration.nix/` part for GH CI
nativeBuildInputs = [ pkgs.mdbook-toc ];
buildPhase = "${pkgs.mdbook}/bin/mdbook build --dest-dir \"$out\"";