aboutsummaryrefslogtreecommitdiff
path: root/doc/manual/generate-xp-features.nix
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2023-04-04 22:57:11 -0400
committerJohn Ericson <John.Ericson@Obsidian.Systems>2023-04-04 22:57:11 -0400
commit53d0836347ea262884658036f97bf19ecbdc5c26 (patch)
tree1e44ef6c424772ee311c34b4dcd772ac7a3ad96c /doc/manual/generate-xp-features.nix
parent3f98353f196bfd1da3641751f4f7826f42581893 (diff)
Assemble experimental feature docs outside of Nix itself
Instead of constructing a markdown list in C++ (which involved all sorts of nasty string literals), export some JSON and assemble it with the manual build system. Besides following the precedent set with other dumped data, this is a better separate of content and presentation; if we decide for example we want to display this information in a different way, or in a different section of the manual, it will become much easier to do so.
Diffstat (limited to 'doc/manual/generate-xp-features.nix')
-rw-r--r--doc/manual/generate-xp-features.nix11
1 files changed, 11 insertions, 0 deletions
diff --git a/doc/manual/generate-xp-features.nix b/doc/manual/generate-xp-features.nix
new file mode 100644
index 000000000..db1ba6092
--- /dev/null
+++ b/doc/manual/generate-xp-features.nix
@@ -0,0 +1,11 @@
+with builtins;
+with import ./utils.nix;
+
+let
+ showExperimentalFeature = name: doc:
+ squash ''
+ - <span id="xp-feature-${name}">[`${name}`](#xp-feature-${name})</span>
+
+ ${indent " " doc}
+ '';
+in xps: indent " " (concatStringsSep "\n" (attrValues (mapAttrs showExperimentalFeature xps)))