diff --git a/lib/options.nix b/lib/options.nix
index afae1769afd..3a1c0e540d7 100644
--- a/lib/options.nix
+++ b/lib/options.nix
@@ -242,6 +242,8 @@ rec {
in if ss != {} then optionAttrSetToDocList' opt.loc ss else [];
subOptionsVisible = docOption.visible && opt.visible or null != "shallow";
in
+ # To find infinite recursion in NixOS option docs:
+ # builtins.trace opt.loc
[ docOption ] ++ optionals subOptionsVisible subOptions) (collect isOption options);
diff --git a/nixos/doc/manual/default.nix b/nixos/doc/manual/default.nix
index bcb5d0d02f7..1cd769b6a54 100644
--- a/nixos/doc/manual/default.nix
+++ b/nixos/doc/manual/default.nix
@@ -133,12 +133,12 @@ let
# ^ redirect assumes xmllint doesn’t print to stdout
}
- lintrng manual-combined.xml
- lintrng man-pages-combined.xml
-
mkdir $out
cp manual-combined.xml $out/
cp man-pages-combined.xml $out/
+
+ lintrng $out/manual-combined.xml
+ lintrng $out/man-pages-combined.xml
'';
olinkDB = runCommand "manual-olinkdb"
diff --git a/nixos/lib/make-options-doc/default.nix b/nixos/lib/make-options-doc/default.nix
index 282b3e7397c..6649fc41d41 100644
--- a/nixos/lib/make-options-doc/default.nix
+++ b/nixos/lib/make-options-doc/default.nix
@@ -22,6 +22,10 @@
, transformOptions ? lib.id # function for additional tranformations of the options
, documentType ? "appendix" # TODO deprecate "appendix" in favor of "none"
# and/or rename function to moduleOptionDoc for clean slate
+
+ # If you include more than one option list into a document, you need to
+ # provide different ids.
+, variablelistId ? "configuration-variable-list"
, revision ? "" # Specify revision for the options
# a set of options the docs we are generating will be merged into, as if by recursiveUpdate.
# used to split the options doc build into a static part (nixos/modules) and a dynamic part
@@ -177,6 +181,7 @@ in rec {
${pkgs.libxslt.bin}/bin/xsltproc \
--stringparam documentType '${documentType}' \
--stringparam revision '${revision}' \
+ --stringparam variablelistId '${variablelistId}' \
-o intermediate.xml ${./options-to-docbook.xsl} sorted.xml
${pkgs.libxslt.bin}/bin/xsltproc \
-o "$out" ${./postprocess-option-descriptions.xsl} intermediate.xml
diff --git a/nixos/lib/make-options-doc/mergeJSON.py b/nixos/lib/make-options-doc/mergeJSON.py
index 9510b1e59a2..33e5172270b 100644
--- a/nixos/lib/make-options-doc/mergeJSON.py
+++ b/nixos/lib/make-options-doc/mergeJSON.py
@@ -57,19 +57,21 @@ def convertMD(options: Dict[str, Any]) -> str:
try:
return super(Renderer, self)._get_method(name)
except AttributeError:
- def not_supported(children, **kwargs):
- raise NotImplementedError("md node not supported yet", name, children, **kwargs)
+ def not_supported(*args, **kwargs):
+ raise NotImplementedError("md node not supported yet", name, args, **kwargs)
return not_supported
def text(self, text):
return escape(text)
def paragraph(self, text):
return text + "\n\n"
+ def newline(self):
+ return "
" def command(self, text): return f"{text}