History

Finish Vue.js scraper

Thibaut committed 11 years ago

Commit f1cef991 parent eea35dd16 files · +46 −26Browse files

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

Unified · Split

3 files
  1. lib/docs/filters/vue/clean_html.rb +8 −1
  2. lib/docs/filters/vue/entries.rb +17 −8
  3. lib/docs/scrapers/vue.rb +10 −5
lib/docs/filters/vue/clean_html.rb+8−1
@@ -2,12 +2,19 @@ module Docs · 1 unmodified line
22 class Vue
33 class CleanHtmlFilter < Filter
44 def call
5+ @doc = at_css('.content')
6+
7+ at_css('h1').content = 'Vue.js' if root_page?
8+
9+ css('#demo').remove
10+
511 # Remove code highlighting
612 css('figure').each do |node|
713 node.name = 'pre'
814 node.content = node.at_css('td.code pre').css('.line').map(&:content).join("\n")
915 end
10− css('.content')
16+
17+ doc
1118 end
1219 end
1320 end
lib/docs/filters/vue/entries.rb+17−8
@@ -1,16 +1,25 @@
11 module Docs
22 class Vue
33 class EntriesFilter < Docs::EntriesFilter
4+ def get_name
5+ at_css('h1').content
6+ end
7+
8+ def get_type
9+ if slug.start_with?('guide')
10+ 'Guide'
11+ else
12+ 'API'
13+ end
14+ end
15+
416 def additional_entries
5− type = nil
17+ return [] if slug.start_with?('guide')
618
7− doc.children.each_with_object [] do |node, entries|
8− if node.name == 'h1'
9− type = node.content.strip
10− elsif node.name == 'h3'
11− name = node.content.strip
12− entries << [name, node['id'], type]
13− end
19+ css('h3').map do |node|
20+ name = node.content.strip
21+ name.sub! %r{\(.*\)}, '()'
22+ [name, node['id'], "API: #{self.name}"]
1423 end
1524 end
1625 end
lib/docs/scrapers/vue.rb+10−5
@@ -3,16 +3,21 @@ module Docs · 2 unmodified lines
33 self.name = 'Vue.js'
44 self.slug = 'vue'
55 self.type = 'vue'
6− self.version = '0.12.5'
7− self.base_url = 'http://vuejs.org/api/'
8−
6+ self.version = '0.12.6'
7+ self.base_url = 'http://vuejs.org'
8+ self.root_path = '/guide/index.html'
9+ self.initial_paths = %w(/api/index.html)
10+ self.links = {
11+ home: 'http://vuejs.org/',
12+ code: 'https://github.com/yyx990803/vue'
13+ }
914
1015 html_filters.push 'vue/clean_html', 'vue/entries'
11− options[:follow_links] = ->(filter) { filter.root_page? }
1216
17+ options[:only_patterns] = [/\/guide\//, /\/api\//]
1318
1419 options[:attribution] = <<-HTML
15− &copy; 2014&ndash;2015 Evan You, Vue.js contributors<br>
20+ &copy; 2013&ndash;2015 Evan You, Vue.js contributors<br>
1621 Licensed under the MIT License.
1722 HTML
1823 end