diff options
author | Nobuyoshi Nakada <[email protected]> | 2022-03-13 19:44:09 +0900 |
---|---|---|
committer | git <[email protected]> | 2022-03-14 14:48:12 +0900 |
commit | 976431d9ed1a144675c24c4e8d510171cfd7c32c (patch) | |
tree | 81944f7d7d930ca413eb3a1a1b37d0889603c53b /lib/rdoc | |
parent | a884431624966824b9496daa1cfa0dc5e95fe118 (diff) |
[ruby/rdoc] Fold class and module index
https://github.com/ruby/rdoc/commit/4c7c46fcc4
Diffstat (limited to 'lib/rdoc')
-rw-r--r-- | lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml | 28 | ||||
-rw-r--r-- | lib/rdoc/generator/template/darkfish/css/rdoc.css | 16 |
2 files changed, 41 insertions, 3 deletions
diff --git a/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml b/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml index 530f25c762..787bbe42c2 100644 --- a/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +++ b/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml @@ -1,9 +1,31 @@ <div id="classindex-section" class="nav-section"> <h3>Class and Module Index</h3> + <%- + all_classes = @classes.group_by do |klass| + klass.full_name[/\A[^:]++(?:::[^:]++(?=::))*+(?=::[^:]*+\z)/] + end.delete_if do |_, klasses| + !klasses.any?(&:display?) + end + link = proc do |index_klass, display = index_klass.display?| + if display + -%><code><a href="<%= rel_prefix %>/<%= index_klass.path %>"><%= index_klass.name %></a></code><%- + else + -%><code><%= index_klass.name %></code><%- + end + end + -%> + <%- traverse = proc do |klasses| -%> <ul class="link-list"> - <%- @modsort.each do |index_klass| -%> - <li><a href="<%= rel_prefix %>/<%= index_klass.path %>"><%= index_klass.full_name %></a> + <%- klasses.each do |index_klass| -%> + <%- if children = all_classes[index_klass.full_name] -%> + <li><details><summary><% link.call(index_klass) %></summary> + <%- traverse.call(children) -%> + </ul></details> + <%- elsif index_klass.display? -%> + <li><% link.call(index_klass, true) %> + <%- end -%> + <%- end -%> <%- end -%> - </ul> + <%- traverse.call(all_classes[nil]) -%> </div> diff --git a/lib/rdoc/generator/template/darkfish/css/rdoc.css b/lib/rdoc/generator/template/darkfish/css/rdoc.css index 7451b6ecb9..8c2b2ac6cb 100644 --- a/lib/rdoc/generator/template/darkfish/css/rdoc.css +++ b/lib/rdoc/generator/template/darkfish/css/rdoc.css @@ -484,6 +484,22 @@ main header h3 { /* @group Method Details */ +details summary { + display: block; +} +details summary::-webkit-details-marker { + display: none; +} +details summary:before { + content: ""; +} +details summary:after { + content: " ▶"; +} +details[open] > summary:after { + content: " ▽"; +} + main .method-source-code { max-height: 0; overflow: hidden; |