about summary refs log tree commit diff
path: root/nixos/lib/make-options-doc/mergeJSON.py
diff options
context:
space:
mode:
authorRobert Hensing <roberth@users.noreply.github.com>2022-06-27 22:51:22 +0200
committerGitHub <noreply@github.com>2022-06-27 22:51:22 +0200
commit47dd5d15c12aa31dfdbdde155d9edba80e56c83c (patch)
tree25067144d306a3ecec2cdae8ab295795f415b2e7 /nixos/lib/make-options-doc/mergeJSON.py
parent27b96f26ddf8d2e6c795642e7d9c5b9e9aa2d4a8 (diff)
parent7c81905344bd308c62509f93c87274c50ab54092 (diff)
Merge pull request #179351 from hercules-ci/option-docs-improvements
Option docs improvements
Diffstat (limited to 'nixos/lib/make-options-doc/mergeJSON.py')
-rw-r--r--nixos/lib/make-options-doc/mergeJSON.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/nixos/lib/make-options-doc/mergeJSON.py b/nixos/lib/make-options-doc/mergeJSON.py
index 9510b1e59a20c..33e5172270b58 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 "<literallayout>\n</literallayout>"
         def codespan(self, text):
-            return f"<literal>{text}</literal>"
+            return f"<literal>{escape(text)}</literal>"
         def block_code(self, text, info=None):
             info = f" language={quoteattr(info)}" if info is not None else ""
-            return f"<programlisting{info}>\n{text}</programlisting>"
+            return f"<programlisting{info}>\n{escape(text)}</programlisting>"
         def link(self, link, text=None, title=None):
             if link[0:1] == '#':
                 attr = "linkend"
@@ -102,6 +104,8 @@ def convertMD(options: Dict[str, Any]) -> str:
             # a single paragraph and the original docbook string is no longer
             # available to restore the trailer.
             return f"<{tag}><para>{text.rstrip()}</para></{tag}>"
+        def block_quote(self, text):
+            return f"<blockquote><para>{text}</para></blockquote>"
         def command(self, text):
             return f"<command>{escape(text)}</command>"
         def option(self, text):
@@ -194,7 +198,7 @@ overrides = pivot(json.load(open(sys.argv[2 + optOffset], 'r')))
 for (k, v) in options.items():
     # The _module options are not declared in nixos/modules
     if v.value['loc'][0] != "_module":
-        v.value['declarations'] = list(map(lambda s: f'nixos/modules/{s}', v.value['declarations']))
+        v.value['declarations'] = list(map(lambda s: f'nixos/modules/{s}' if isinstance(s, str) else s, v.value['declarations']))
 
 # merge both descriptions
 for (k, v) in overrides.items():