Skip to content

Commit 24ac996

Browse files
committed
Elixir: include source link in section headers
This implements #763 just for Elixir without solving the general issue. The style used is similar to the one of the Go docs.
1 parent fdfc4dd commit 24ac996

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

assets/stylesheets/pages/_elixir.scss

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,9 @@
44
.type-detail { margin-bottom: 2em; }
55
.type-detail pre { margin-left: -1rem; }
66
._mobile & .type-detail pre { margin-left: 0; }
7+
8+
a.source {
9+
float: right;
10+
font-size: .9em;
11+
}
712
}

lib/docs/filters/elixir/clean_html.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def guide
2525
end
2626

2727
def api
28-
css('.hover-link', '.view-source', 'footer').remove
28+
css('.hover-link', 'footer', ':not(.detail-header) > .view-source').remove
2929

3030
css('.summary').each do |node|
3131
node.name = 'dl'
@@ -51,7 +51,11 @@ def api
5151
detail.css('.detail-header').each do |node|
5252
node.name = 'h3'
5353
node['id'] = id
54+
55+
source_href = node.at_css('.view-source').attr('href')
56+
5457
node.content = node.at_css('.signature').inner_text
58+
node << %(<a href="#{source_href}" class="source">Source</a>)
5559
end
5660

5761
detail.css('.docstring h2').each do |node|

lib/docs/filters/elixir/entries.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ def additional_entries
4545

4646
css('.detail-header').map do |node|
4747
id = node['id']
48-
name = node.content.strip
48+
# ignore text of children, i.e. source link
49+
name = node.children.select(&:text?).map(&:content).join.strip
4950

5051
name.remove! %r{\(.*\)}
5152
name.remove! 'left '

0 commit comments

Comments
 (0)