1
0

docker.rb 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. module Docs
  2. class Docker < UrlScraper
  3. include MultipleBaseUrls
  4. self.name = 'Docker'
  5. self.type = 'simple'
  6. self.release = '20.10.6'
  7. self.base_urls = [
  8. 'https://docs.docker.com/',
  9. 'https://docs.docker.com/machine/'
  10. ]
  11. self.links = {
  12. home: 'https://docker.com/',
  13. code: 'https://github.com/docker/docker'
  14. }
  15. html_filters.push 'docker/entries', 'docker/clean_html'
  16. options[:only_patterns] = [/\Aget-started\//, /\Aengine\//, /\Acompose\//, /\Amachine\//, /\Anotary\//]
  17. options[:skip_patterns] = [/\Aengine\/api\/v/, /glossary/, /docker-ee/]
  18. options[:skip] = [
  19. 'engine/userguide/networking/get-started-overlay/'
  20. ]
  21. options[:trailing_slash] = true
  22. options[:fix_urls] = ->(url) do
  23. url.sub! %r{\.md/?(?=#|\z)}, '/'
  24. url.sub! '/index/', '/'
  25. url
  26. end
  27. options[:attribution] = <<-HTML
  28. &copy; 2019 Docker, Inc.<br>
  29. Licensed under the Apache License, Version 2.0.<br>
  30. Docker and the Docker logo are trademarks or registered trademarks of Docker, Inc. in the United States and/or other countries.<br>
  31. Docker, Inc. and other parties may also have trademark rights in other terms used herein.
  32. HTML
  33. options[:replace_paths] = {
  34. 'engine/userguide/' => 'config/daemon',
  35. 'engine/userguide/labels-custom-metadata/' => 'config',
  36. 'engine/swarm/networking/' => 'network/overlay',
  37. 'engine/userguide/eng-image/dockerfile_best-practices/' => 'develop/develop-images/dockerfile_best-practices/',
  38. 'engine/userguide/networking/get-started-overlay/' => 'network/network-tutorial-overlay/',
  39. 'engine/userguide/networking/' => 'network/',
  40. 'engine/reference/api/' => 'develop/sdk',
  41. 'engine/api/latest/' => 'develop/sdk',
  42. 'get-started/part3/' => 'get-started/04_sharing_app/',
  43. 'engine/security/https/' => 'engine/security/protect-access/',
  44. 'compose/aspnet-mssql-compose/' => 'samples/aspnet-mssql-compose/',
  45. 'engine/examples/dotnetcore/' => 'samples/dotnetcore/'
  46. }
  47. version '19' do
  48. self.release = '19.03'
  49. self.base_url = "https://docs.docker.com"
  50. end
  51. version '18' do
  52. self.release = '18.09'
  53. self.base_url = "https://docs.docker.com"
  54. end
  55. version '17' do
  56. self.release = '17.12'
  57. self.base_url = "https://docs.docker.com"
  58. end
  59. version '1.13' do
  60. self.release = '1.13'
  61. self.base_url = "https://docs.docker.com"
  62. end
  63. version '1.12' do
  64. self.release = '1.12'
  65. self.base_url = "https://docs.docker.com"
  66. end
  67. version '1.11' do
  68. self.release = '1.11'
  69. self.base_url = "https://docs.docker.com"
  70. end
  71. version '1.10' do
  72. self.release = '1.10'
  73. self.base_url = "https://docs.docker.com"
  74. end
  75. def get_latest_version(opts)
  76. doc = fetch_doc('https://docs.docker.com/engine/release-notes/', opts)
  77. latest_version = doc.at_css('.content > section > h1[id^="version-"]').content.strip
  78. latest_version.rpartition(' ')[-1]
  79. end
  80. end
  81. end