docs: move pkgs overlays to their own file

This commit is contained in:
Matt Sturgeon 2024-09-12 12:55:33 +01:00
parent 27a0dd435d
commit 6665521525
No known key found for this signature in database
GPG key ID: 4F91844CED1A8299
3 changed files with 58 additions and 42 deletions

44
docs/pkgs.nix Normal file
View file

@ -0,0 +1,44 @@
{
system,
nixpkgs,
}:
let
# FIXME:
# Building the docs evaluates many package-option defaults, some of which are unfree.
# This usually happens when we include the package option value in another option's default without
# using a literalExpression defaultText.
config = {
allowUnfree = true;
};
# Extend nixpkg's lib, so that we can handle recursive leaf types such as `either`
libOverlay = final: prev: {
types = prev.types // {
either =
t1: t2:
prev.types.either t1 t2
// {
getSubOptions = prefix: t1.getSubOptions prefix // t2.getSubOptions prefix;
};
};
};
# Extended nixpkgs instance, with patches to nixos-render-docs
overlay = final: prev: {
lib = prev.lib.extend libOverlay;
nixos-render-docs = prev.nixos-render-docs.overrideAttrs (old: {
patches = old.patches or [ ] ++ [
# Adds support for GFM-style admonitions in rendered commonmark
./0001-Output-GFM-admonition.patch
# TODO:add support for _parsing_ GFM admonitions too
# https://github.com/nix-community/nixvim/issues/2217
];
});
};
in
import nixpkgs {
inherit config system;
overlays = [ overlay ];
}