History

Update and improve Go documentation (1.7.4)

Closes #538. Closes #540. Closes #541.

Thibaut Courouble committed 9 years ago

Commit cd8188b1 parent 06cf1184 files · +38 −12Browse files

Unified · Split

4 files
  1. assets/stylesheets/pages/_go.scss +5 −0
  2. lib/docs/filters/go/clean_html.rb +11 −4
  3. lib/docs/filters/go/entries.rb +20 −7
  4. lib/docs/scrapers/go.rb +2 −1
assets/stylesheets/pages/_go.scss+5−0
@@ -2,4 +2,9 @@ · 1 unmodified line
2 @extend %simple;2 @extend %simple;
3 3
4 #short-nav, table.dir { margin-left: -1rem; }4 #short-nav, table.dir { margin-left: -1rem; }
5
6 a.source {
7 float: right;
8 font-size: .9em;
9 }
5}10}
lib/docs/filters/go/clean_html.rb+11−4
@@ -20,9 +20,16 @@ module Docs · 19 unmodified lines
20 node.before(node.children).remove20 node.before(node.children).remove
21 end21 end
22 22
23 css('h2 a', 'h3 a').each do |node|
24 if node['href'].include?('/src/')
25 node.after %(<a href="#{node['href']}" class="source">Source</a>)
26 node.before(node.children).remove
27 end
28 end
29
23 # Remove triangle character30 # Remove triangle character
24 css('h2', '.exampleHeading').each do |node|31 css('h2', '.exampleHeading').each do |node|
25 node.content = node.content.remove("\u25BE")32 node.inner_html = node.inner_html.remove("\u25BE")
26 node.name = 'h4' unless node.name == 'h2'33 node.name = 'h4' unless node.name == 'h2'
27 end34 end
28 35
@@ -44,9 +51,9 @@ module Docs · 15 unmodified lines
44 node.content = node.content51 node.content = node.content
45 end52 end
46 53
47 css('td[style]', 'ul[style]').each do |node|54 css('td[style]', 'ul[style]').remove_attr('style')
48 node.remove_attribute('style')55 css('.toggleButton[title]').remove_attr('title')
49 end56 css('.toggleButton').remove_attr('class')
50 57
51 doc58 doc
52 end59 end
lib/docs/filters/go/entries.rb+20−7
@@ -2,23 +2,36 @@ module Docs · 1 unmodified line
2 class Go2 class Go
3 class EntriesFilter < Docs::EntriesFilter3 class EntriesFilter < Docs::EntriesFilter
4 def get_name4 def get_name
5 name = at_css('h1').content5 code = at_css('code')
6 name.remove! 'Package '6 if code && name = code.content[/import "([\w\/]+)"/, 1]
7 name7 name
8 else
9 name = at_css('h1').content
10 name.remove! 'Package '
11 name
12 end
8 end13 end
9 14
10 def get_type15 def get_type
11 subpath[/\A[^\/]+/]16 package = subpath[/\A[^\/]+/]
17 if package.in?(%w(math net))
18 name.split('/')[0..1].join('/')
19 else
20 package
21 end
12 end22 end
13 23
14 def additional_entries24 def additional_entries
25 return [] if root_page?
26 package = self.name.split('/').last
15 css('#manual-nav a').each_with_object [] do |node, entries|27 css('#manual-nav a').each_with_object [] do |node, entries|
16 case node.content28 case node.content
17 when /type\ (\w+)/29 when /type\ (\w+)/
18 name = "#{$1} (#{self.name})"30 name = "#{package}.#{$1}"
19 when /func\ (?:\(.+\)\ )?(\w+)\(/31 when /func\ (?:\(.+\)\ )?(\w+)\(/
20 name = "#{$1}() (#{self.name})"32 name = "#{$1}()"
21 name.prepend "#{$1}." if node['href'] =~ /#(\w+)\.#{$1}/33 name.prepend "#{$1}." if node['href'] =~ /#(\w+)\.#{$1}/
34 name.prepend "#{package}."
22 when 'Constants'35 when 'Constants'
23 name = "#{self.name} constants"36 name = "#{self.name} constants"
24 when 'Variables'37 when 'Variables'
@@ -30,7 +43,7 @@ module Docs · 5 unmodified lines
30 end43 end
31 44
32 def include_default_entry?45 def include_default_entry?
33 !at_css('h1 + table.dir')46 !at_css('h1 + .pkg-dir')
34 end47 end
35 end48 end
36 end49 end
lib/docs/scrapers/go.rb+2−1
@@ -1,7 +1,7 @@
1module Docs1module Docs
2 class Go < UrlScraper2 class Go < UrlScraper
3 self.type = 'go'3 self.type = 'go'
4 self.release = '1.7.3'4 self.release = '1.7.4'
5 self.base_url = 'https://golang.org/pkg/'5 self.base_url = 'https://golang.org/pkg/'
6 self.links = {6 self.links = {
7 home: 'https://golang.org/',7 home: 'https://golang.org/',
@@ -12,6 +12,7 @@ module Docs · 4 unmodified lines
12 12
13 options[:trailing_slash] = true13 options[:trailing_slash] = true
14 options[:container] = '#page .container'14 options[:container] = '#page .container'
15 options[:skip] = %w(runtime/msan/)
15 16
16 options[:attribution] = <<-HTML17 options[:attribution] = <<-HTML
17 &copy; Google, Inc.<br>18 &copy; Google, Inc.<br>