[ruby/rdoc] Make methods and attributes linkable

(https://github.com/ruby/rdoc/pull/1189)

* Use the same color for both class/module and method highlight

* Make methods and attributes linkable

https://github.com/ruby/rdoc/commit/7757fd9fe4
This commit is contained in:
Stan Lo 2024-10-11 00:09:40 +08:00 committed by git
parent 9df86a86af
commit a778562f33
2 changed files with 29 additions and 10 deletions

View File

@ -72,8 +72,10 @@
<%- attributes.each do |attrib| -%> <%- attributes.each do |attrib| -%>
<div id="<%= attrib.aref %>" class="method-detail"> <div id="<%= attrib.aref %>" class="method-detail">
<div class="method-heading attribute-method-heading"> <div class="method-heading attribute-method-heading">
<span class="method-name"><%= h attrib.name %></span><span <a href="#<%= attrib.aref %>" title="Link to this attribute">
class="attribute-access-type">[<%= attrib.rw %>]</span> <span class="method-name"><%= h attrib.name %></span>
<span class="attribute-access-type">[<%= attrib.rw %>]</span>
</a>
</div> </div>
<div class="method-description"> <div class="method-description">
@ -103,21 +105,27 @@
<%- if (call_seq = method.call_seq) then -%> <%- if (call_seq = method.call_seq) then -%>
<%- call_seq.strip.split("\n").each_with_index do |call_seq, i| -%> <%- call_seq.strip.split("\n").each_with_index do |call_seq, i| -%>
<div class="method-heading"> <div class="method-heading">
<span class="method-callseq"> <a href="#<%= method.aref %>" title="Link to this method">
<%= h(call_seq.strip. <span class="method-callseq">
<%= h(call_seq.strip.
gsub( /^\w+\./m, '')). gsub( /^\w+\./m, '')).
gsub(/(.*)[-=]&gt;/, '\1&rarr;') %> gsub(/(.*)[-=]&gt;/, '\1&rarr;') %>
</span> </span>
</a>
</div> </div>
<%- end -%> <%- end -%>
<%- elsif method.has_call_seq? then -%> <%- elsif method.has_call_seq? then -%>
<div class="method-heading"> <div class="method-heading">
<span class="method-name"><%= h method.name %></span> <a href="#<%= method.aref %>" title="Link to this method">
<span class="method-name"><%= h method.name %></span>
</a>
</div> </div>
<%- else -%> <%- else -%>
<div class="method-heading"> <div class="method-heading">
<span class="method-name"><%= h method.name %></span> <a href="#<%= method.aref %>" title="Link to this method">
<span class="method-args"><%= h method.param_seq %></span> <span class="method-name"><%= h method.name %></span>
<span class="method-args"><%= h method.param_seq %></span>
</a>
</div> </div>
<%- end -%> <%- end -%>
</div> </div>

View File

@ -84,7 +84,7 @@ h4:target,
h5:target, h5:target,
h6:target { h6:target {
margin-left: -10px; margin-left: -10px;
border-left: 10px solid #f1edba; border-left: 10px solid var(--source-code-background-color);
} }
/* 4. Links */ /* 4. Links */
@ -631,6 +631,18 @@ main .method-heading {
color: var(--text-color); color: var(--text-color);
} }
main .method-heading::after {
content: '¶';
position: absolute;
visibility: hidden;
color: var(--secondary-color);
font-size: 0.5em;
}
main .method-heading:hover::after {
visibility: visible;
}
main .method-controls { main .method-controls {
line-height: 20px; line-height: 20px;
float: right; float: right;
@ -663,7 +675,6 @@ main #attribute-method-details .method-detail:hover {
} }
main .attribute-access-type { main .attribute-access-type {
text-transform: uppercase; text-transform: uppercase;
padding: 0 1em;
} }
/* @end */ /* @end */