1
0

docker.rb 3.1 KB

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