about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSilvan Mosberger <contact@infinisil.com>2024-04-04 16:48:21 +0200
committerGitHub <noreply@github.com>2024-04-04 16:48:21 +0200
commit60e005352de6d1ab8b365993eef394f9f195f7d3 (patch)
tree99d3391ec7c2ba7c7a7dec55c48e4c08776a25ff
parentbb0849ee63fbf8d0e461f8b28c9369f11a7ad235 (diff)
parent2ce2079e4d82c9456a05b6764a818d6461e3c0af (diff)
downloadnixlib-60e005352de6d1ab8b365993eef394f9f195f7d3.tar
nixlib-60e005352de6d1ab8b365993eef394f9f195f7d3.tar.gz
nixlib-60e005352de6d1ab8b365993eef394f9f195f7d3.tar.bz2
nixlib-60e005352de6d1ab8b365993eef394f9f195f7d3.tar.lz
nixlib-60e005352de6d1ab8b365993eef394f9f195f7d3.tar.xz
nixlib-60e005352de6d1ab8b365993eef394f9f195f7d3.tar.zst
nixlib-60e005352de6d1ab8b365993eef394f9f195f7d3.zip
Merge pull request #301152 from DanielSidhion/examples-collapsible
nixos-render-docs: make examples collapsible by default
-rw-r--r--doc/style.css16
-rw-r--r--pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/html.py8
2 files changed, 20 insertions, 4 deletions
diff --git a/doc/style.css b/doc/style.css
index fddf4f4823c7..38984169589f 100644
--- a/doc/style.css
+++ b/doc/style.css
@@ -347,6 +347,22 @@ div.appendix div.example {
     margin-top: 1.5em;
 }
 
+div.book div.example details,
+div.appendix div.example details {
+    padding: 5px;
+}
+
+div.book div.example details[open],
+div.appendix div.example details[open] {
+    border: 1px solid #aaa;
+    border-radius: 4px;
+}
+
+div.book div.example details>summary,
+div.appendix div.example details>summary {
+    cursor: pointer;
+}
+
 div.book br.example-break,
 div.appendix br.example-break {
     display: none;
diff --git a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/html.py b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/html.py
index 2e43a6a2be87..1de511c7ce31 100644
--- a/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/html.py
+++ b/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs/html.py
@@ -219,13 +219,13 @@ class HTMLRenderer(Renderer):
     def example_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
         if id := cast(str, token.attrs.get('id', '')):
             id = f'id="{escape(id, True)}"' if id else ''
-        return f'<div class="example"><span {id} ></span>'
+        return f'<div class="example"><span {id} ></span><details>'
     def example_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return '</div></div><br class="example-break" />'
+        return '</div></details></div><br class="example-break" />'
     def example_title_open(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return '<p class="title"><strong>'
+        return '<summary><span class="title"><strong>'
     def example_title_close(self, token: Token, tokens: Sequence[Token], i: int) -> str:
-        return '</strong></p><div class="example-contents">'
+        return '</strong></span></summary><div class="example-contents">'
     def image(self, token: Token, tokens: Sequence[Token], i: int) -> str:
         src = self._pull_image(cast(str, token.attrs['src']))
         alt = f'alt="{escape(token.content, True)}"' if token.content else ""