1
0

npm.rb 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. module Docs
  2. class Npm < UrlScraper
  3. self.name = 'npm'
  4. self.type = 'npm'
  5. self.release = '10.2.5'
  6. self.base_url = 'https://docs.npmjs.com/'
  7. self.force_gzip = true
  8. self.links = {
  9. home: 'https://www.npmjs.com/',
  10. code: 'https://github.com/npm/npm'
  11. }
  12. html_filters.push 'npm/entries', 'npm/clean_html'
  13. options[:download_images] = false
  14. # options[:max_image_size] = 130_000
  15. options[:skip] = [
  16. 'all',
  17. 'misc/index',
  18. 'cli',
  19. 'organizations/',
  20. 'orgs',
  21. 'removing-members-from-your-org',
  22. 'adding-members-to-your-org',
  23. 'downloading-and-installing-packages',
  24. ]
  25. options[:skip_patterns] = [
  26. /\Aenterprise/,
  27. /\Acompany/,
  28. /\Apolicies/,
  29. /cli\/v6/,
  30. /cli\/v7/,
  31. /cli\/v8/,
  32. /cli\/v9/,
  33. /\/\Z/ # avoid pages with a trailing slash, those pages mess up the entries
  34. ]
  35. options[:attribution] = <<-HTML
  36. &copy; npm, Inc. and Contributors<br>
  37. Licensed under the npm License.<br>
  38. npm is a trademark of npm, Inc.
  39. HTML
  40. # fix duplicates
  41. options[:fix_urls] = -> (url) do
  42. url.sub!('private-modules/intro', 'creating-and-publishing-private-packages')
  43. url.sub!('managing-team-access-to-packages', 'managing-team-access-to-organization-packages')
  44. url.sub!('accepting-or-rejecting-an-org-invitation', 'accepting-or-rejecting-an-organization-invitation')
  45. url.sub!('org-roles-and-permissions', 'organization-roles-and-permissions')
  46. url.sub!('upgrading-to-a-paid-org-plan', 'upgrading-to-a-paid-organization-plan')
  47. url.sub!('managing-team-access-to-org-packages', 'managing-team-access-to-organization-packages')
  48. url.sub!('about-package-json-and-package-lock-json-files', 'creating-a-package-json-file')
  49. url.sub!('cli/npm', 'cli/v8/commands/npm/')
  50. url.sub!('cli/config', 'cli/v8/commands/npm-config/')
  51. url.sub!('misc/registry', 'cli/v8/using-npm/registry/')
  52. url.sub!('cli-documentation', 'cli/v8')
  53. url.sub!('cli-documentation/files/npmrc', 'cli/v8/configuring-npm/npmrc/')
  54. url.sub!('configuring-your-registry-settings-as-an-npm-enterprise-user', 'enterprise')
  55. url.sub!('cli/publish', 'cli/v8/commands/npm-publish/')
  56. url.sub!('cli/deprecate', 'cli/v8/commands/npm-deprecate/')
  57. url.sub!('cli/access', 'cli/v8/commands/npm-access/')
  58. url.sub!('cli/adduser', 'cli/v8/commands/npm-adduser/')
  59. url.sub!('misc/config', 'cli/v8/using-npm/config/')
  60. url.sub!('cli/token', 'cli/v8/commands/npm-token/')
  61. url.sub!('cli/unpublish', 'cli/v8/commands/npm-unpublish/')
  62. url.sub!('files/package.json', 'cli/v8/configuring-npm/package-json/')
  63. url.sub!('cli/profile', 'cli/v8/commands/npm-profile/')
  64. url.sub!('creating-a-packge-json-file', 'cli/v8/configuring-npm/package-json/')
  65. url.sub!('cli/dist-tag', 'cli/v8/commands/npm-dist-tag/')
  66. url.sub!('cli/team', 'cli/v8/commands/npm-team/')
  67. url.sub!('cli/version', 'cli/v8/commands/npm-version/')
  68. url.sub!('cli/owner', 'cli/v8/commands/npm-owner/')
  69. url.sub!('cli/install', '/cli/v8/commands/npm-install/')
  70. url.sub!('cli/audit', 'cli/v8/commands/npm-audit/')
  71. url.sub!('cli/update', 'cli/v8/commands/npm-update/')
  72. url.sub!('cli/outdated', 'cli/v8/commands/npm-outdated/')
  73. url.sub!('cli/uninstall', 'cli/v8/commands/npm-uninstall/')
  74. url.sub!('misc/developers', 'cli/v8/using-npm/developers//')
  75. url
  76. end
  77. def get_latest_version(opts)
  78. get_latest_github_release('npm', 'cli', opts)
  79. end
  80. end
  81. end