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

@ -3,7 +3,7 @@ authors = ["Jalil David Salamé Messina"]
language = "en"
multilingual = false
src = "src"
title = "Jalil's NixOS configuration module"
title = "Jalil's NixOS configuration modules"
[preprocessor.toc]
command = "mdbook-toc"

View file

@ -1,6 +1,9 @@
# Summary
- [Nix Based Configuration](./configuration-overview.md)
- [NixOS Module Options](./nixos-options.md)
- [Neovim Module Options](./nvim-options.md)
- [Home Manager Module Options](./home-options.md)
[Nix Based Configuration](./configuration-overview.md)
- [NixOS Module Options](./nixos-options.md)
- [Neovim Module Options](./nvim-options.md)
- [Home Manager Module Options](./home-options.md)
[Search](./search/index.html)

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\"";

52
flake.lock generated
View file

@ -240,6 +240,32 @@
"type": "github"
}
},
"ixx": {
"inputs": {
"flake-utils": [
"nuschtosSearch",
"flake-utils"
],
"nixpkgs": [
"nuschtosSearch",
"nixpkgs"
]
},
"locked": {
"lastModified": 1729958008,
"narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"ref": "v0.0.6",
"repo": "ixx",
"type": "github"
}
},
"lix": {
"flake": false,
"locked": {
@ -329,6 +355,31 @@
"type": "github"
}
},
"nuschtosSearch": {
"inputs": {
"flake-utils": [
"lix-module",
"flake-utils"
],
"ixx": "ixx",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1741886583,
"narHash": "sha256-sScfYKtxp3CYv5fJcHQDvQjqBL+tPNQqS9yf9Putd+s=",
"owner": "NuschtOS",
"repo": "search",
"rev": "2974bc5fa3441a319fba943f3ca41f7dcd1a1467",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"repo": "search",
"type": "github"
}
},
"root": {
"inputs": {
"flake-parts": "flake-parts",
@ -336,6 +387,7 @@
"lix-module": "lix-module",
"nixpkgs": "nixpkgs",
"nixvim": "nixvim",
"nuschtosSearch": "nuschtosSearch",
"stylix": "stylix",
"systems": "systems",
"treefmt-nix": "treefmt-nix",

View file

@ -47,10 +47,19 @@
url = "github:hercules-ci/flake-parts";
inputs.nixpkgs-lib.follows = "nixpkgs";
};
# For the formatter (can be set to null)
treefmt-nix = {
url = "github:numtide/treefmt-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
# For generating the docs (can be set to null)
nuschtosSearch = {
url = "github:NuschtOS/search";
inputs = {
nixpkgs.follows = "nixpkgs";
flake-utils.follows = "lix-module/flake-utils";
};
};
# For deduplication
systems.url = "github:nix-systems/default";
};