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