Fix Elixir documentation layout
Showing the changes to lib/docs (3 of 3 files). Show all
Unified · Split
| @@ -25,41 +25,38 @@ module Docs · 24 unmodified lines | ||
| 25 | 25 | end |
| 26 | 26 | |
| 27 | 27 | def api |
| 28 | − css('footer', '.view-source', 'h1 .visible-xs').remove | |
| 28 | + css('.hover-link', '.view-source', 'footer').remove | |
| 29 | 29 | |
| 30 | − css('section section.docstring h2').each do |node| | |
| 31 | − node.name = 'h4' | |
| 30 | + css('.summary').each do |node| | |
| 31 | + node.name = 'dl' | |
| 32 | 32 | end |
| 33 | 33 | |
| 34 | − css('h1 .hover-link', '.detail-link').each do |node| | |
| 35 | − node.parent['id'] = node['href'].remove('#') | |
| 36 | − node.remove | |
| 34 | + css('.summary h2').each do |node| | |
| 35 | + node.content = node.inner_text | |
| 36 | + node.parent.before(node) | |
| 37 | 37 | end |
| 38 | 38 | |
| 39 | − css('.details-list').each do |list| | |
| 40 | − type = list['id'].remove(/s\z/) if list['id'] | |
| 41 | − list.css('.detail-header').each do |node| | |
| 42 | − node.name = 'h3' | |
| 43 | − node['class'] += " #{type}" if type | |
| 44 | − end | |
| 39 | + css('.summary-signature').each do |node| | |
| 40 | + node.name = 'dt' | |
| 45 | 41 | end |
| 46 | 42 | |
| 47 | − css('.summary h2').each { |node| node.parent.before(node) } | |
| 48 | − css('.summary').each { |node| node.name = 'dl' } | |
| 49 | − css('.summary-signature').each { |node| node.name = 'dt' } | |
| 50 | − css('.summary-synopsis').each { |node| node.name = 'dd' } | |
| 51 | − | |
| 52 | − css('section', 'div:not(.type-detail)', 'h2 a').each do |node| | |
| 53 | − node.before(node.children).remove | |
| 43 | + css('.summary-synopsis').each do |node| | |
| 44 | + node.name = 'dd' | |
| 54 | 45 | end |
| 55 | 46 | |
| 56 | − css('.detail-header > pre').each do |node| | |
| 57 | − node.parent.after(node) | |
| 58 | − end | |
| 47 | + css('section.detail').each do |detail| | |
| 48 | + id = detail['id'] | |
| 49 | + detail.remove_attribute('id') | |
| 59 | 50 | |
| 60 | − css('.signature').each do |node| | |
| 61 | − non_text_children = node.xpath('node()[not(self::text())]') | |
| 62 | − non_text_children.to_a.reverse.each { |child| node.parent.add_next_sibling(child) } | |
| 51 | + detail.css('.detail-header').each do |node| | |
| 52 | + node.name = 'h3' | |
| 53 | + node['id'] = id | |
| 54 | + node.content = node.at_css('.signature').inner_text | |
| 55 | + end | |
| 56 | + | |
| 57 | + detail.css('.docstring h2').each do |node| | |
| 58 | + node.name = 'h4' | |
| 59 | + end | |
| 63 | 60 | end |
| 64 | 61 | |
| 65 | 62 | css('pre').each do |node| |
| @@ -41,21 +41,25 @@ module Docs · 40 unmodified lines | ||
| 41 | 41 | end |
| 42 | 42 | |
| 43 | 43 | def additional_entries |
| 44 | − return [] if type == 'Exceptions' || type == 'Guide' | |
| 44 | + return [] if type == 'Exceptions' || type == 'Guide' || root_page? | |
| 45 | 45 | |
| 46 | − css('.detail-header .signature').map do |node| | |
| 47 | − id = node.parent['id'] | |
| 46 | + css('.detail-header').map do |node| | |
| 47 | + id = node['id'] | |
| 48 | 48 | name = node.content.strip |
| 49 | + | |
| 49 | 50 | name.remove! %r{\(.*\)} |
| 50 | 51 | name.remove! 'left ' |
| 51 | 52 | name.remove! ' right' |
| 52 | 53 | name.sub! 'sigil_', '~' |
| 53 | 54 | |
| 54 | − unless node.parent['class'].end_with?('macro') || self.name.start_with?('Kernel') | |
| 55 | + if self.name && !self.name.start_with?('Kernel') | |
| 55 | 56 | name.prepend "#{self.name}." |
| 56 | 57 | end |
| 57 | 58 | |
| 58 | − name << " (#{id.split('/').last})" if id =~ /\/\d+\z/ | |
| 59 | + if id =~ %r{/\d+\z} | |
| 60 | + arity = id.split('/').last | |
| 61 | + name << " (#{arity})" | |
| 62 | + end | |
| 59 | 63 | |
| 60 | 64 | [name, id] |
| 61 | 65 | end |
| @@ -34,7 +34,7 @@ module Docs · 33 unmodified lines | ||
| 34 | 34 | end |
| 35 | 35 | |
| 36 | 36 | version '1.9' do |
| 37 | − self.release = '1.9.1' | |
| 37 | + self.release = '1.9.4' | |
| 38 | 38 | self.base_urls = [ |
| 39 | 39 | "https://hexdocs.pm/elixir/#{release}/", |
| 40 | 40 | "https://hexdocs.pm/eex/#{release}/", |