From cdbda982f04bd021cfa8d549896410c5caf84fdf Mon Sep 17 00:00:00 2001 From: Matt Sturgeon Date: Mon, 18 Nov 2024 17:48:37 +0000 Subject: [PATCH] docs/search: refactor to use `override` --- docs/default.nix | 39 +++++++++++++++++---------------------- docs/mdbook/default.nix | 13 ++++++++----- 2 files changed, 25 insertions(+), 27 deletions(-) diff --git a/docs/default.nix b/docs/default.nix index 709453a5..cfe77c61 100644 --- a/docs/default.nix +++ b/docs/default.nix @@ -50,35 +50,30 @@ let }).optionsJSON; in -{ - inherit options-json; - inherit (pkgs) nixos-render-docs; - - gfm-alerts-to-admonitions = pkgs.python3.pkgs.callPackage ./gfm-alerts-to-admonitions { }; - - man-docs = pkgs.callPackage ./man { inherit options-json; }; -} -// lib.optionalAttrs (!pkgs.stdenv.isDarwin) ( - let - mkSearch = - baseHref: - nuschtosSearch.packages.mkSearch { - optionsJSON = options-json + "/share/doc/nixos/options.json"; - urlPrefix = "https://github.com/nix-community/nixvim/tree/main"; - title = "Nixvim options search"; - inherit baseHref; - }; - in +lib.fix ( + self: { + inherit options-json; + inherit (pkgs) nixos-render-docs; + + gfm-alerts-to-admonitions = pkgs.python3.pkgs.callPackage ./gfm-alerts-to-admonitions { }; + + man-docs = pkgs.callPackage ./man { inherit options-json; }; + } + // lib.optionalAttrs (!pkgs.stdenv.isDarwin) { # NuschtOS/search does not seem to work on darwin - search = mkSearch "/"; + search = nuschtosSearch.packages.mkSearch { + optionsJSON = options-json + "/share/doc/nixos/options.json"; + urlPrefix = "https://github.com/nix-community/nixvim/tree/main"; + title = "Nixvim options search"; + baseHref = "/"; + }; # Do not check if documentation builds fine on darwin as it fails: # > sandbox-exec: pattern serialization length 69298 exceeds maximum (65535) docs = pkgs.callPackage ./mdbook { inherit evaledModules transformOptions; - # TODO: Find how to handle stable when 24.11 lands - search = mkSearch "/nixvim/search/"; + inherit (self) search; }; } ) diff --git a/docs/mdbook/default.nix b/docs/mdbook/default.nix index 3798ea5d..e4f290d9 100644 --- a/docs/mdbook/default.nix +++ b/docs/mdbook/default.nix @@ -5,6 +5,8 @@ nixosOptionsDoc, transformOptions, search, + # The root directory of the site + baseHref ? "/nixvim/", }: let inherit (evaledModules.config.meta) nixvimInfo; @@ -323,7 +325,7 @@ pkgs.stdenv.mkDerivation (finalAttrs: { # Patch book.toml substituteInPlace ./book.toml \ - --replace-fail "@SITE_URL@" "$siteURL" + --replace-fail "@SITE_URL@" "$baseHref" # Patch SUMMARY.md - which defiens mdBook's table of contents substituteInPlace ./SUMMARY.md \ @@ -333,12 +335,10 @@ pkgs.stdenv.mkDerivation (finalAttrs: { mdbook build cp -r ./book/* $dest mkdir -p $dest/search - cp -r ${search}/* $dest/search + cp -r ${finalAttrs.passthru.search}/* $dest/search ''; - # The root directory of the site - # Can be overridden, e.g. by CI - siteURL = "/nixvim/"; + inherit baseHref; inherit (mdbook) nixvimOptionsSummary @@ -348,5 +348,8 @@ pkgs.stdenv.mkDerivation (finalAttrs: { passthru = { copy-docs = pkgs.writeShellScript "copy-docs" docs.commands; + search = search.override { + baseHref = finalAttrs.baseHref + "search/"; + }; }; })