Unified · Split
| @@ -9,7 +9,12 @@ module Docs · 8 unmodified lines | |||
| 9 | css('meta', '.colophon').remove | 9 | css('meta', '.colophon').remove |
| 10 | end | 10 | end |
| 11 | 11 | ||
| 12 | css('> section', '.deep-link > a').each do |node| | 12 | css('a.deep-link[id]').each do |node| |
| 13 | node.parent['id'] = node['id'] | ||
| 14 | node.remove | ||
| 15 | end | ||
| 16 | |||
| 17 | css('> section').each do |node| | ||
| 13 | node.before(node.children).remove | 18 | node.before(node.children).remove |
| 14 | end | 19 | end |
| 15 | 20 | ||
| @@ -26,13 +26,13 @@ module Docs · 25 unmodified lines | |||
| 26 | def additional_entries | 26 | def additional_entries |
| 27 | case slug | 27 | case slug |
| 28 | when 'files/package.json' | 28 | when 'files/package.json' |
| 29 | css('#page > h2[id]').each_with_object [] do |node, entries| | 29 | css('#page > h2').each_with_object [] do |node, entries| |
| 30 | next if node.content =~ /\A[A-Z]/ | 30 | next if node.content =~ /\A[A-Z]/ |
| 31 | entries << ["package.json: #{node.content}", node['id']] | 31 | entries << ["package.json: #{node.content}", node.at_css('.deep-link')['id']] |
| 32 | end | 32 | end |
| 33 | when 'misc/config' | 33 | when 'misc/config' |
| 34 | css('#config-settings ~ h3[id]').map do |node| | 34 | css('h2:contains("Config Settings") ~ h3').map do |node| |
| 35 | ["config: #{node.content}", node['id']] | 35 | ["config: #{node.content}", node.at_css('.deep-link')['id']] |
| 36 | end | 36 | end |
| 37 | else | 37 | else |
| 38 | [] | 38 | [] |
| @@ -2,7 +2,7 @@ module Docs · 1 unmodified line | |||
| 2 | class Npm < UrlScraper | 2 | class Npm < UrlScraper |
| 3 | self.name = 'npm' | 3 | self.name = 'npm' |
| 4 | self.type = 'npm' | 4 | self.type = 'npm' |
| 5 | self.release = '4.2.0' | 5 | self.release = '4.4.1' |
| 6 | self.base_url = 'https://docs.npmjs.com/' | 6 | self.base_url = 'https://docs.npmjs.com/' |
| 7 | self.force_gzip = true | 7 | self.force_gzip = true |
| 8 | self.links = { | 8 | self.links = { |