History

Finish webpack scraper

Thibaut committed 11 years ago

Commit f0cb4b61 parent ba165ae15 files · +25 −89Browse files

Showing the changes to lib/docs (3 of 15 files). Show all

Unified · Split

3 files
  1. lib/docs/filters/webpack/clean_html.rb +6 −18
  2. lib/docs/filters/webpack/entries.rb +2 −12
  3. lib/docs/scrapers/webpack.rb +11 −4
lib/docs/filters/webpack/clean_html.rb+6−18
@@ -1,5 +1,5 @@
1module Docs1module Docs
2 class Webpack 2 class Webpack
3 class CleanHtmlFilter < Filter3 class CleanHtmlFilter < Filter
4 def call4 def call
5 root_page? ? root : other5 root_page? ? root : other
@@ -14,32 +14,20 @@ module Docs · 8 unmodified lines
14 # in devdocs.14 # in devdocs.
15 hr_index = doc.children.find_index { |node| node.name == "hr" }15 hr_index = doc.children.find_index { |node| node.name == "hr" }
16 doc.children[0..hr_index].each(&:remove)16 doc.children[0..hr_index].each(&:remove)
17
18 # Add a page header :)
19 page_header_node = Nokogiri::XML::Node.new "h1", @doc
20 page_header_node.content = "Webpack"
21 @doc.children.first.add_previous_sibling page_header_node
22 end17 end
23 18
24 19
25 def other20 def other
26 # Re-create the header element21 # Re-create the header element
27 page_header = at_css("#wikititle").content.upcase22 at_css("#wiki").child.before("<h1>#{at_css("#wikititle").content}</h1>")
28 page_header_node = Nokogiri::XML::Node.new "h1", @doc
29 page_header_node.content = page_header
30 23
31 # Change the scope of the page
32 @doc = at_css("#wiki")24 @doc = at_css("#wiki")
33 25
34 # Add the page header26 css('.contents', 'a.anchor', 'hr').remove
35 @doc.children.first.add_previous_sibling page_header_node
36
37 # Remove the sidebar links in each page
38 css(".contents").remove
39
40 # Remove all anchors
41 css("a.anchor").remove
42 27
28 css('pre').each do |node|
29 node.content = node.content
30 end
43 end31 end
44 end32 end
45 end33 end
lib/docs/filters/webpack/entries.rb+2−12
@@ -2,7 +2,7 @@ module Docs · 1 unmodified line
2 class Webpack2 class Webpack
3 class EntriesFilter < Docs::EntriesFilter3 class EntriesFilter < Docs::EntriesFilter
4 def get_name4 def get_name
5 entry_link.content.strip.titleize5 entry_link.content
6 end6 end
7 7
8 def get_type8 def get_type
@@ -10,7 +10,7 @@ module Docs · 1 unmodified line
10 type_links_list = link_li.parent10 type_links_list = link_li.parent
11 current_type = type_links_list.parent11 current_type = type_links_list.parent
12 12
13 # current type is a 13 # current type is a
14 # <li>14 # <li>
15 # TYPE15 # TYPE
16 # <li> <ul> .. links .. </ul> </li>16 # <li> <ul> .. links .. </ul> </li>
@@ -20,16 +20,6 @@ module Docs · 3 unmodified lines
20 current_type.children.first.content.strip.titleize20 current_type.children.first.content.strip.titleize
21 end21 end
22 22
23
24 def additional_entries
25 return [] unless root_page?
26
27 css('.sidebar a').each_with_object [] do |link, entries|
28 name = link.content.strip
29 entries << [name, link['href']]
30 end
31 end
32
33 private23 private
34 24
35 def entry_link25 def entry_link
lib/docs/scrapers/webpack.rb+11−4
@@ -1,13 +1,20 @@
1module Docs1module Docs
2 class Webpack < UrlScraper2 class Webpack < UrlScraper
3 self.name = 'Webpack'3 self.name = 'webpack'
4 self.type = 'webpack'4 self.type = 'webpack'
5 self.version = '1.9'5 self.version = '1.10'
6 self.base_url = 'https://webpack.github.io/docs/'6 self.base_url = 'https://webpack.github.io/docs/'
7 self.root_path = 'index.html'7 self.links = {
8 home: 'https://webpack.github.io/',
9 code: 'https://github.com/webpack/webpack'
10 }
8 11
9 html_filters.push 'webpack/entries', 'webpack/clean_html'12 html_filters.push 'webpack/entries', 'webpack/clean_html', 'title'
10 13
14 options[:title] = false
15 options[:root_title] = 'webpack'
16
17 options[:skip] = %w(list-of-tutorials.html examples.html changelog.html ideas.html roadmap.html)
11 18
12 options[:attribution] = <<-HTML19 options[:attribution] = <<-HTML
13 &copy; 2012&ndash;2015 Tobias Koppers<br>20 &copy; 2012&ndash;2015 Tobias Koppers<br>