mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 16:39:00 +02:00
docs: move pkgs overlays to their own file
This commit is contained in:
parent
27a0dd435d
commit
6665521525
3 changed files with 58 additions and 42 deletions
|
@ -1,42 +1,13 @@
|
||||||
{
|
{
|
||||||
pkgs ? import <nixpkgs> { config.allowUnfree = true; },
|
system,
|
||||||
|
nixpkgs,
|
||||||
nuschtosSearch,
|
nuschtosSearch,
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
# Extend nixpkg's lib, so that we can handle recursive leaf types such as `either`
|
# We overlay a few tweaks into pkgs, for use in the docs
|
||||||
lib = pkgs.lib.extend (
|
pkgs = import ./pkgs.nix { inherit system nixpkgs; };
|
||||||
final: prev: {
|
inherit (pkgs) lib;
|
||||||
types = prev.types // {
|
helpers = import ../lib/helpers.nix { inherit lib pkgs; };
|
||||||
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
|
|
||||||
pkgsDoc = pkgs.extend (
|
|
||||||
final: prev: {
|
|
||||||
inherit lib;
|
|
||||||
|
|
||||||
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
|
|
||||||
];
|
|
||||||
});
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
helpers = import ../lib/helpers.nix {
|
|
||||||
inherit lib;
|
|
||||||
pkgs = pkgsDoc;
|
|
||||||
};
|
|
||||||
|
|
||||||
nixvimPath = toString ./..;
|
nixvimPath = toString ./..;
|
||||||
|
|
||||||
|
@ -74,7 +45,7 @@ let
|
||||||
.options [ "_module" ];
|
.options [ "_module" ];
|
||||||
|
|
||||||
options-json =
|
options-json =
|
||||||
(pkgsDoc.nixosOptionsDoc {
|
(pkgs.nixosOptionsDoc {
|
||||||
inherit (evaledModules) options;
|
inherit (evaledModules) options;
|
||||||
inherit transformOptions;
|
inherit transformOptions;
|
||||||
warningsAreErrors = false;
|
warningsAreErrors = false;
|
||||||
|
@ -84,9 +55,9 @@ in
|
||||||
{
|
{
|
||||||
inherit options-json;
|
inherit options-json;
|
||||||
|
|
||||||
man-docs = pkgsDoc.callPackage ./man { inherit options-json; };
|
man-docs = pkgs.callPackage ./man { inherit options-json; };
|
||||||
}
|
}
|
||||||
// lib.optionalAttrs (!pkgsDoc.stdenv.isDarwin) (
|
// lib.optionalAttrs (!pkgs.stdenv.isDarwin) (
|
||||||
let
|
let
|
||||||
mkSearch =
|
mkSearch =
|
||||||
baseHref:
|
baseHref:
|
||||||
|
@ -102,7 +73,7 @@ in
|
||||||
|
|
||||||
# Do not check if documentation builds fine on darwin as it fails:
|
# Do not check if documentation builds fine on darwin as it fails:
|
||||||
# > sandbox-exec: pattern serialization length 69298 exceeds maximum (65535)
|
# > sandbox-exec: pattern serialization length 69298 exceeds maximum (65535)
|
||||||
docs = pkgsDoc.callPackage ./mdbook {
|
docs = pkgs.callPackage ./mdbook {
|
||||||
inherit evaledModules hmOptions transformOptions;
|
inherit evaledModules hmOptions transformOptions;
|
||||||
# TODO: Find how to handle stable when 24.11 lands
|
# TODO: Find how to handle stable when 24.11 lands
|
||||||
search = mkSearch "/nixvim/search/";
|
search = mkSearch "/nixvim/search/";
|
||||||
|
|
44
docs/pkgs.nix
Normal file
44
docs/pkgs.nix
Normal 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 ];
|
||||||
|
}
|
|
@ -1,15 +1,16 @@
|
||||||
|
{ inputs, ... }:
|
||||||
{
|
{
|
||||||
perSystem =
|
perSystem =
|
||||||
{
|
{
|
||||||
pkgsUnfree,
|
|
||||||
config,
|
config,
|
||||||
inputs',
|
inputs',
|
||||||
|
system,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
packages = import ../docs {
|
packages = import ../docs {
|
||||||
# Building the docs evaluates each plugin's default package, some of which are unfree
|
inherit system;
|
||||||
pkgs = pkgsUnfree;
|
inherit (inputs) nixpkgs;
|
||||||
inherit (inputs') nuschtosSearch;
|
inherit (inputs') nuschtosSearch;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue