Browse Source

node: use <details> for mjs vs. cjs

Simon Legner 1 month ago
parent
commit
abf5954c80
2 changed files with 15 additions and 5 deletions
  1. 8 0
      assets/stylesheets/global/_base.scss
  2. 7 5
      lib/docs/filters/node/clean_html.rb

+ 8 - 0
assets/stylesheets/global/_base.scss

@@ -123,6 +123,14 @@ pre, %pre {
   @extend %box;
 }
 
+details:has(> pre) {
+  margin: 1.5em 0;
+
+  > pre {
+    margin: 0;
+  }
+}
+
 a > code { color: inherit; }
 
 table {

+ 7 - 5
lib/docs/filters/node/clean_html.rb

@@ -8,15 +8,17 @@ module Docs
           next unless (node.css('code').to_a.length > 1)
 
           node.css('code').each do |subnode|
+            node.before(subnode)
 
             if subnode.classes.include?('mjs')
-              node.before('<p class=module-type>MJS modules</p>')
+              subnode.wrap('<details open>')
+              subnode.wrap('<pre>')
+              subnode.ancestors('details').first.prepend_child('<summary>JavaScript modules</summary>')
             elsif subnode.classes.include?('cjs')
-              node.before('<p class=module-type>CJS modules</p>')
+              subnode.wrap('<details>')
+              subnode.wrap('<pre>')
+              subnode.ancestors('details').first.prepend_child('<summary>CommonJS</summary>')
             end
-
-            node.before(subnode)
-            subnode.wrap('<pre>')
           end
 
           node.remove