docs: add nuschtosSearch to book
This provides a nice option search.
This commit is contained in:
parent
6116711cbd
commit
843cfda2ad
5 changed files with 101 additions and 31 deletions
|
@ -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"
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
52
flake.lock
generated
|
@ -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",
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue