docker.rb 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. module Docs
  2. class Docker < UrlScraper
  3. self.type = 'docker'
  4. self.links = {
  5. home: 'https://docker.com/',
  6. code: 'https://github.com/docker/docker'
  7. }
  8. options[:trailing_slash] = true
  9. options[:fix_urls] = ->(url) do
  10. url.sub! %r{\.md/?(?=#|\z)}, '/'
  11. url.sub! '/index/', '/'
  12. url
  13. end
  14. options[:attribution] = <<-HTML
  15. &copy; 2017 Docker, Inc.<br>
  16. Licensed under the Apache License, Version 2.0.<br>
  17. Docker and the Docker logo are trademarks or registered trademarks of Docker, Inc. in the United States and/or other countries.<br>
  18. Docker, Inc. and other parties may also have trademark rights in other terms used herein.
  19. HTML
  20. version '17' do
  21. self.release = '17.06'
  22. self.base_url = 'https://docs.docker.com/'
  23. html_filters.push 'docker/entries', 'docker/clean_html'
  24. options[:container] = '.wrapper .container-fluid .row'
  25. options[:only_patterns] = [/\Aget-started\//, /\Aengine\//, /\Acompose\//, /\Amachine\//, /\Anotary\//]
  26. options[:skip_patterns] = [/\Aengine\/api\/v/, /glossary/, /docker-ee/]
  27. options[:replace_paths] = {
  28. 'engine/installation/linux/docker-ee/linux-postinstall/' => 'engine/installation/linux/linux-postinstall/',
  29. 'engine/installation/linux/docker-ee/' => 'engine/installation/',
  30. 'engine/installation/linux/docker-ce/' => 'engine/installation/',
  31. 'engine/installation/linux/' => 'engine/installation/',
  32. 'engine/installation/windows/' => 'engine/installation/',
  33. 'engine/userguide/intro/' => 'engine/userguide/',
  34. 'engine/tutorials/dockervolumes/' => 'engine/admin/volumes/volumes/',
  35. 'engine/getstarted/' => 'get-started/',
  36. 'engine/tutorials/dockerimages/' => 'get-started/',
  37. 'engine/tutorials/dockerrepos/' => 'get-started/',
  38. 'engine/admin/host_integration/' => 'engine/admin/start-containers-automatically/',
  39. 'engine/installation/linux/rhel/' => 'engine/installation/linux/docker-ee/rhel/',
  40. 'engine/installation/linux/ubuntulinux/' => 'engine/installation/linux/docker-ee/ubuntu/',
  41. 'engine/installation/linux/suse/' => 'engine/installation/linux/docker-ee/suse/',
  42. 'engine/admin/logging/' => 'engine/admin/logging/view_container_logs/',
  43. 'engine/swarm/how-swarm-mode-works/' => 'engine/swarm/how-swarm-mode-works/nodes/',
  44. 'engine/installation/binaries/' => 'engine/installation/linux/docker-ce/binaries/',
  45. 'engine/reference/commandline/' => 'engine/reference/commandline/docker/',
  46. 'engine/reference/api/' => 'engine/api/',
  47. 'engine/userguide/dockervolumes/' => 'engine/admin/volumes/volumes/',
  48. 'engine/understanding-docker/' => 'engine/docker-overview/',
  49. 'engine/reference/commandline/swarm_join_token/' => 'engine/reference/commandline/swarm_join-token/',
  50. 'engine/api/getting-started/' => 'engine/api/get-started/',
  51. }
  52. end
  53. module OldOptions
  54. def self.included(klass)
  55. klass.options[:only_patterns] = [/\Aengine\//, /\Acompose\//, /\Amachine\//]
  56. klass.options[:skip_patterns] = [/\Aengine\/api\/v/, /\Aengine\/installation/]
  57. klass.options[:skip] = %w(
  58. /
  59. engine/userguide/
  60. engine/examples/
  61. engine/reference/
  62. engine/reference/api/
  63. engine/reference/api/docker_remote_api_v1.24/
  64. engine/getstarted/linux_install_help/
  65. machine/reference/
  66. machine/drivers/
  67. machine/examples/
  68. compose/reference/
  69. )
  70. klass.options[:replace_paths] = {
  71. 'engine/userguide/networking/dockernetworks/' => 'engine/userguide/networking/',
  72. 'engine/userguide/dockervolumes/' => 'engine/tutorials/dockervolumes/',
  73. 'engine/reference/logging/overview/' => 'engine/admin/logging/overview/',
  74. 'engine/reference/commandline/daemon/' => 'engine/reference/commandline/dockerd/',
  75. 'engine/reference/commandline/' => 'engine/reference/commandline/docker/',
  76. 'engine/reference/api/docker_remote_api/' => 'engine/api/',
  77. 'engine/swarm/how-swarm-mode-works/' => 'engine/swarm/how-swarm-mode-works/nodes/',
  78. 'engine/tutorials/dockerizing/' => 'engine/getstarted/step_one/',
  79. 'engine/tutorials/usingdocker/' => 'engine/getstarted/step_three/',
  80. 'engine/tutorials/dockerimages/' => 'engine/getstarted/step_four/',
  81. 'engine/tutorials/dockerrepos/' => 'engine/getstarted/step_six/'
  82. }
  83. end
  84. end
  85. version '1.13' do
  86. include OldOptions
  87. self.release = '1.13'
  88. self.base_url = "https://docs.docker.com/v#{self.version}/"
  89. html_filters.push 'docker/entries_old', 'docker/clean_html_old'
  90. options[:container] = '.container-fluid .row'
  91. end
  92. version '1.12' do
  93. include OldOptions
  94. self.release = '1.12'
  95. self.base_url = "https://docs.docker.com/v#{self.version}/"
  96. html_filters.push 'docker/entries_old', 'docker/clean_html_old'
  97. options[:container] = '.container-fluid .row'
  98. end
  99. version '1.11' do
  100. include OldOptions
  101. self.release = '1.11'
  102. self.base_url = "https://docs.docker.com/v#{self.version}/"
  103. html_filters.push 'docker/entries_very_old', 'docker/clean_html_very_old'
  104. options[:container] = '#docs'
  105. options[:only_patterns] << /\Aswarm\//
  106. end
  107. version '1.10' do
  108. include OldOptions
  109. self.release = '1.10'
  110. self.base_url = "https://docs.docker.com/v#{self.version}/"
  111. html_filters.push 'docker/entries_very_old', 'docker/clean_html_very_old'
  112. options[:container] = '#docs'
  113. options[:only_patterns] << /\Aswarm\//
  114. end
  115. end
  116. end