History

Improve Express scraper

Closes #606.

Thibaut Courouble committed 9 years ago

Commit 435488c1 parent c35aaef3 files · +13 −4Browse files

Unified · Split

3 files
  1. lib/docs/filters/express/clean_html.rb +7 −0
  2. lib/docs/filters/express/entries.rb +6 −3
  3. lib/docs/scrapers/express.rb +0 −1
lib/docs/filters/express/clean_html.rb+7−0
@@ -2,6 +2,13 @@ module Docs · 1 unmodified line
22 class Express
33 class CleanHtmlFilter < Filter
44 def call
5+ i = 1
6+ n = at_css("#navmenu a[href='#{result[:path].split('/').last}']").parent
7+ i += 1 while n && n = n.previous_element
8+ at_css('h1')['data-level'] = i
9+
10+ @doc = at_css('#api-doc, .content')
11+
512 css('section', 'div.highlighter-rouge').each do |node|
613 node.before(node.children).remove
714 end
lib/docs/filters/express/entries.rb+6−3
@@ -4,11 +4,14 @@ module Docs · 3 unmodified lines
44 TYPES_BY_PATH = {
55 'starter' => 'Getting started',
66 'guide' => 'Guide',
7− 'advanced' => 'Guide'
7+ 'advanced' => 'Advanced topics'
88 }
99
1010 def get_name
11− at_css('h1').content
11+ node = at_css('h1')
12+ name = node.content
13+ name.prepend "#{node['data-level']}. " if type.in?(%w(Guide Getting\ started Advanced\ topics))
14+ name
1215 end
1316
1417 def get_type
@@ -19,7 +22,7 @@ module Docs · 4 unmodified lines
1922 return [] unless root_page?
2023 type = 'Application'
2124
22− doc.children.each_with_object [] do |node, entries|
25+ at_css('#api-doc').children.each_with_object [] do |node, entries|
2326 if node.name == 'h2'
2427 type = node.content
2528 entries << [type, node['id'], 'Application'] if type == 'Middleware'
lib/docs/scrapers/express.rb+0−1
@@ -18,7 +18,6 @@ module Docs · 17 unmodified lines
1818
1919 options[:title] = false
2020 options[:root_title] = 'Express'
21− options[:container] = ->(filter) { filter.root_page? ? '#api-doc' : '.content' }
2221
2322 options[:only_patterns] = [
2423 /\Astarter/,