diff --git a/lib/docs/filters/npm/clean_html.rb b/lib/docs/filters/npm/clean_html.rb
index ad5d0374..b1e2055e 100644
--- a/lib/docs/filters/npm/clean_html.rb
+++ b/lib/docs/filters/npm/clean_html.rb
@@ -9,7 +9,12 @@ module Docs
css('meta', '.colophon').remove
end
- css('> section', '.deep-link > a').each do |node|
+ css('a.deep-link[id]').each do |node|
+ node.parent['id'] = node['id']
+ node.remove
+ end
+
+ css('> section').each do |node|
node.before(node.children).remove
end
diff --git a/lib/docs/filters/npm/entries.rb b/lib/docs/filters/npm/entries.rb
index 690f2e6f..a816ea1e 100644
--- a/lib/docs/filters/npm/entries.rb
+++ b/lib/docs/filters/npm/entries.rb
@@ -26,13 +26,13 @@ module Docs
def additional_entries
case slug
when 'files/package.json'
- css('#page > h2[id]').each_with_object [] do |node, entries|
+ css('#page > h2').each_with_object [] do |node, entries|
next if node.content =~ /\A[A-Z]/
- entries << ["package.json: #{node.content}", node['id']]
+ entries << ["package.json: #{node.content}", node.at_css('.deep-link')['id']]
end
when 'misc/config'
- css('#config-settings ~ h3[id]').map do |node|
- ["config: #{node.content}", node['id']]
+ css('h2:contains("Config Settings") ~ h3').map do |node|
+ ["config: #{node.content}", node.at_css('.deep-link')['id']]
end
else
[]
diff --git a/lib/docs/scrapers/npm.rb b/lib/docs/scrapers/npm.rb
index 623321ed..57eae04c 100644
--- a/lib/docs/scrapers/npm.rb
+++ b/lib/docs/scrapers/npm.rb
@@ -2,7 +2,7 @@ module Docs
class Npm < UrlScraper
self.name = 'npm'
self.type = 'npm'
- self.release = '4.2.0'
+ self.release = '4.4.1'
self.base_url = 'https://docs.npmjs.com/'
self.force_gzip = true
self.links = {