mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-15 10:46:15 +02:00
a2fed6db9e
* manual: Contributing -> Development, Hacking -> Building what's currently called "hacking" are really instructions for setting up a development environment and compiling from source. we have a contribution guide in the repo (which rightly focuses on GitHub workflows), and the material in the manual is more about working on the code itself. since we'd otherwise have three headings that amount to "Building Nix", this change also moves the "classic Nix" instructions to the top. we may want to reorganise this in the future, and bring contributor-oriented information closer to the code, but for now let's stick to more accurate names to ease navigation.
57 lines
1.6 KiB
Nix
57 lines
1.6 KiB
Nix
let
|
|
inherit (builtins) attrNames listToAttrs concatStringsSep readFile replaceStrings;
|
|
inherit (import <nix/utils.nix>) optionalString filterAttrs trim squash toLower unique indent;
|
|
showSettings = import <nix/generate-settings.nix>;
|
|
in
|
|
|
|
{
|
|
# data structure describing all stores and their parameters
|
|
storeInfo,
|
|
# whether to add inline HTML tags
|
|
# `lowdown` does not eat those for one of the output modes
|
|
inlineHTML,
|
|
}:
|
|
|
|
let
|
|
|
|
showStore = { name, slug }: { settings, doc, experimentalFeature }:
|
|
let
|
|
result = squash ''
|
|
# ${name}
|
|
|
|
${experimentalFeatureNote}
|
|
|
|
${doc}
|
|
|
|
## Settings
|
|
|
|
${showSettings { prefix = "store-${slug}"; inherit inlineHTML; } settings}
|
|
'';
|
|
|
|
experimentalFeatureNote = optionalString (experimentalFeature != null) ''
|
|
> **Warning**
|
|
>
|
|
> This store is part of an
|
|
> [experimental feature](@docroot@/development/experimental-features.md).
|
|
>
|
|
> To use this store, make sure the
|
|
> [`${experimentalFeature}` experimental feature](@docroot@/development/experimental-features.md#xp-feature-${experimentalFeature})
|
|
> is enabled.
|
|
> For example, include the following in [`nix.conf`](@docroot@/command-ref/conf-file.md):
|
|
>
|
|
> ```
|
|
> extra-experimental-features = ${experimentalFeature}
|
|
> ```
|
|
'';
|
|
in result;
|
|
|
|
storesList = map
|
|
(name: rec {
|
|
inherit name;
|
|
slug = replaceStrings [ " " ] [ "-" ] (toLower name);
|
|
filename = "${slug}.md";
|
|
page = showStore { inherit name slug; } storeInfo.${name};
|
|
})
|
|
(attrNames storeInfo);
|
|
|
|
in storesList
|