Browse Source

Update Docker documentation (1.12, 1.11, 1.10)

Thibaut Courouble 9 years ago
parent
commit
0ebd9fac8e

+ 3 - 1
lib/docs/filters/docker/clean_html.rb

@@ -7,10 +7,12 @@ module Docs
           return doc
           return doc
         end
         end
 
 
-        @doc = at_css('#content')
+        @doc = at_css('#DocumentationText')
 
 
         at_css('h2').name = 'h1' unless at_css('h1')
         at_css('h2').name = 'h1' unless at_css('h1')
 
 
+        css('.anchorLink').remove
+
         css('pre').each do |node|
         css('pre').each do |node|
           node.content = node.content
           node.content = node.content
         end
         end

+ 22 - 0
lib/docs/filters/docker/clean_html_old.rb

@@ -0,0 +1,22 @@
+module Docs
+  class Docker
+    class CleanHtmlOldFilter < Filter
+      def call
+        if root_page?
+          doc.inner_html = "<h1>Docker Documentation</h1>"
+          return doc
+        end
+
+        @doc = at_css('#content')
+
+        at_css('h2').name = 'h1' unless at_css('h1')
+
+        css('pre').each do |node|
+          node.content = node.content
+        end
+
+        doc
+      end
+    end
+  end
+end

+ 11 - 13
lib/docs/filters/docker/entries.rb

@@ -2,14 +2,15 @@ module Docs
   class Docker
   class Docker
     class EntriesFilter < Docs::EntriesFilter
     class EntriesFilter < Docs::EntriesFilter
       def get_name
       def get_name
-        name = nav_link ? nav_link.content.strip : at_css('#content h1').content.strip
+        return 'Engine' if subpath == 'engine/'
+
+        name = nav_link.content.strip
         name.capitalize! if name == 'exoscale'
         name.capitalize! if name == 'exoscale'
 
 
         if name =~ /\A[a-z\-\s]+\z/
         if name =~ /\A[a-z\-\s]+\z/
           name.prepend 'docker ' if subpath =~ /engine\/reference\/commandline\/./
           name.prepend 'docker ' if subpath =~ /engine\/reference\/commandline\/./
           name.prepend 'docker-compose  ' if subpath =~ /compose\/reference\/./
           name.prepend 'docker-compose  ' if subpath =~ /compose\/reference\/./
           name.prepend 'docker-machine ' if subpath =~ /machine\/reference\/./
           name.prepend 'docker-machine ' if subpath =~ /machine\/reference\/./
-          name.prepend 'swarm ' if subpath =~ /swarm\/reference\/./ && name != 'swarm'
         else
         else
           name << " (#{product})" if name !~ /#{product}/i
           name << " (#{product})" if name !~ /#{product}/i
         end
         end
@@ -18,16 +19,13 @@ module Docs
       end
       end
 
 
       def get_type
       def get_type
-        unless nav_link
-          return 'Engine: User guide' if subpath.start_with?('engine/userguide')
-          return 'Engine: Secure' if subpath.start_with?('engine/security')
-          return 'Engine' if subpath == 'engine/'
-        end
+        return 'Engine' if subpath == 'engine/'
 
 
-        type = nav_link.ancestors('article').to_a.reverse.to_a[0..1].map do |node|
-          node.at_css('> button').content.strip
+        type = nav_link.ancestors('.menu-open').to_a.reverse.to_a[0..1].map do |node|
+          node.at_css('> a').content.strip
         end.join(': ')
         end.join(': ')
 
 
+        type = self.name if type.empty?
         type.remove! %r{\ADocker }
         type.remove! %r{\ADocker }
         type.remove! %r{ Engine}
         type.remove! %r{ Engine}
         type.sub! %r{Command[\-\s]line reference}i, 'CLI'
         type.sub! %r{Command[\-\s]line reference}i, 'CLI'
@@ -37,14 +35,14 @@ module Docs
 
 
       def nav_link
       def nav_link
         return @nav_link if defined?(@nav_link)
         return @nav_link if defined?(@nav_link)
-        @nav_link = at_css('#multiple .active')
+        @nav_link = at_css('.currentPage')
 
 
         unless @nav_link
         unless @nav_link
-          link = at_css('#content li a')
+          link = at_css('#DocumentationText li a')
           return unless link
           return unless link
-          link = at_css("#multiple a[href='#{link['href']}']")
+          link = at_css(".docsidebarnav_section a[href='#{link['href']}']")
           return unless link
           return unless link
-          @nav_link = link.ancestors('article').first.at_css('button')
+          @nav_link = link.ancestors('.menu-closed').first.at_css('a')
         end
         end
 
 
         @nav_link
         @nav_link

+ 56 - 0
lib/docs/filters/docker/entries_old.rb

@@ -0,0 +1,56 @@
+module Docs
+  class Docker
+    class EntriesOldFilter < Docs::EntriesFilter
+      def get_name
+        name = nav_link ? nav_link.content.strip : at_css('#content h1').content.strip
+        name.capitalize! if name == 'exoscale'
+
+        if name =~ /\A[a-z\-\s]+\z/
+          name.prepend 'docker ' if subpath =~ /engine\/reference\/commandline\/./
+          name.prepend 'docker-compose  ' if subpath =~ /compose\/reference\/./
+          name.prepend 'docker-machine ' if subpath =~ /machine\/reference\/./
+          name.prepend 'swarm ' if subpath =~ /swarm\/reference\/./ && name != 'swarm'
+        else
+          name << " (#{product})" if name !~ /#{product}/i
+        end
+
+        name
+      end
+
+      def get_type
+        unless nav_link
+          return 'Engine: User guide' if subpath.start_with?('engine/userguide')
+        end
+
+        type = nav_link.ancestors('article').to_a.reverse.to_a[0..1].map do |node|
+          node.at_css('> button').content.strip
+        end.join(': ')
+
+        type.remove! %r{\ADocker }
+        type.remove! %r{ Engine}
+        type.sub! %r{Command[\-\s]line reference}i, 'CLI'
+        type = 'Engine: Reference' if type == 'Engine: reference'
+        type
+      end
+
+      def nav_link
+        return @nav_link if defined?(@nav_link)
+        @nav_link = at_css('#multiple .active')
+
+        unless @nav_link
+          link = at_css('#content li a')
+          return unless link
+          link = at_css("#multiple a[href='#{link['href']}']")
+          return unless link
+          @nav_link = link.ancestors('article').first.at_css('button')
+        end
+
+        @nav_link
+      end
+
+      def product
+        @product ||= subpath.split('/').first.capitalize
+      end
+    end
+  end
+end

+ 47 - 11
lib/docs/scrapers/docker.rb

@@ -6,20 +6,37 @@ module Docs
       code: 'https://github.com/docker/docker'
       code: 'https://github.com/docker/docker'
     }
     }
 
 
-    html_filters.push 'docker/entries', 'docker/clean_html'
-
-    options[:container] = '#docs'
     options[:trailing_slash] = true
     options[:trailing_slash] = true
 
 
-    options[:only_patterns] = [
-      /\Aengine\//,
-      /\Acompose\//,
-      /\Amachine\//,
-      /\Aswarm\//
-    ]
-    options[:skip] = %w(swarm/scheduler/)
+    options[:only_patterns] = [/\Aengine\//, /\Acompose\//, /\Amachine\//]
+
+    options[:skip] = %w(
+      swarm/scheduler/
+      swarm/swarm_at_scale/
+      swarm/reference/
+      engine/installation/linux/
+      engine/installation/cloud/
+      engine/installation/
+      engine/tutorials/
+      engine/userguide/
+      engine/extend/
+      engine/examples/
+      engine/reference/
+      engine/reference/api/
+      engine/security/
+      engine/security/trust/
+      engine/getstarted/linux_install_help/
+      machine/reference/
+      machine/drivers/
+      machine/examples/
+      compose/reference/
+    ) # index pages
+
     options[:replace_paths] = {
     options[:replace_paths] = {
-      'engine/installation/ubuntulinux/' => 'engine/installation/linux/ubuntulinux/'
+      'engine/installation/ubuntulinux/'            => 'engine/installation/linux/ubuntulinux/',
+      'engine/userguide/networking/dockernetworks/' => 'engine/userguide/networking/',
+      'engine/reference/logging/overview/'          => 'engine/admin/logging/overview/',
+      'engine/userguide/dockervolumes/'             => 'engine/tutorials/dockervolumes/'
     }
     }
 
 
     options[:attribution] = <<-HTML
     options[:attribution] = <<-HTML
@@ -29,14 +46,33 @@ module Docs
       Docker, Inc. and other parties may also have trademark rights in other terms used herein.
       Docker, Inc. and other parties may also have trademark rights in other terms used herein.
     HTML
     HTML
 
 
+    version '1.12' do
+      self.release = '1.12'
+      self.base_url = 'https://docs.docker.com/'
+
+      html_filters.push 'docker/entries', 'docker/clean_html'
+
+      options[:container] = '.container-fluid .row'
+    end
+
     version '1.11' do
     version '1.11' do
       self.release = '1.11'
       self.release = '1.11'
       self.base_url = "https://docs.docker.com/v#{self.version}/"
       self.base_url = "https://docs.docker.com/v#{self.version}/"
+
+      html_filters.push 'docker/entries_old', 'docker/clean_html_old'
+
+      options[:container] = '#docs'
+      options[:only_patterns] << /\Aswarm\//
     end
     end
 
 
     version '1.10' do
     version '1.10' do
       self.release = '1.10'
       self.release = '1.10'
       self.base_url = "https://docs.docker.com/v#{self.version}/"
       self.base_url = "https://docs.docker.com/v#{self.version}/"
+
+      html_filters.push 'docker/entries_old', 'docker/clean_html_old'
+
+      options[:container] = '#docs'
+      options[:only_patterns] << /\Aswarm\//
     end
     end
   end
   end
 end
 end