Browse Source

added Kubectl documentation

Fouad 3 years ago
parent
commit
f7c8c8a6f8

+ 1 - 0
assets/stylesheets/application.css.scss

@@ -74,6 +74,7 @@
         'pages/julia',
         'pages/knockout',
         'pages/kotlin',
+        'pages/kubectl',
         'pages/kubernetes',
         'pages/laravel',
         'pages/liquid',

+ 4 - 0
assets/stylesheets/pages/_kubectl.scss

@@ -0,0 +1,4 @@
+._kubectl {
+  @extend %simple;
+
+}

+ 11 - 0
lib/docs/filters/kubectl/clean_html.rb

@@ -0,0 +1,11 @@
+module Docs
+  class Kubectl
+    class CleanHtmlFilter < Filter
+
+      def call
+        doc
+      end
+
+    end
+  end
+end

+ 38 - 0
lib/docs/filters/kubectl/entries.rb

@@ -0,0 +1,38 @@
+module Docs
+  class Kubectl
+    class EntriesFilter < Docs::EntriesFilter
+
+      def get_name
+        name
+      end
+
+      def get_type
+        name
+      end
+
+      def additional_entries
+        entries = []
+        group = 'kubectl'
+        commands = css('h1').to_a()
+        commands.map do |node|
+          # handle titles differnetly by converting them into sidebar groups (types)
+          new_group = at_css("##{node['id']} > strong")
+          if new_group
+            group = new_group.content.titleize
+          else
+            # prepend kubectl before every command
+            command_name = 'kubectl ' + node.content
+            entries << [command_name, node['id'], group]
+          end
+        
+        end
+
+        entries
+      end
+
+      def include_default_entry?
+        false
+      end
+    end
+  end
+end

+ 45 - 0
lib/docs/scrapers/kubectl.rb

@@ -0,0 +1,45 @@
+module Docs
+  class Kubectl < UrlScraper
+    self.name = 'Kubectl'
+    self.type = 'kubectl'
+    self.root_path = ''
+    self.links = {
+      home: 'https://kubernetes.io/docs/reference/kubectl/',
+      code: 'https://github.com/kubernetes/kubernetes'
+    }
+    self.release = "1.23"
+    self.base_url = "https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands"
+
+    html_filters.push 'kubectl/entries', 'kubectl/clean_html'
+
+    options[:container] = '#page-content-wrapper'
+
+    options[:attribution] = <<-HTML
+      &copy; 2022 The Kubernetes Authors | Documentation Distributed under CC BY 4.0 <br>
+      Copyright &copy; 2022 The Linux Foundation ®. All rights reserved.
+    HTML
+
+    # latest version has a special URL that does not include the version identifier 
+    version '1.23' do
+      self.release = "#{version}"
+      self.base_url = "https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands"
+    end
+
+    version '1.20' do
+      self.release = "#{version}"
+      verStr = version.sub('.', '-')
+      self.base_url = "https://v#{verStr}.docs.kubernetes.io/docs/reference/generated/kubectl/kubectl-commands"
+    end
+
+    version '1.19' do
+      self.release = "#{version}"
+      verStr = version.sub('.', '-')
+      self.base_url = "https://v#{verStr}.docs.kubernetes.io/docs/reference/generated/kubectl/kubectl-commands"
+    end
+
+    def get_latest_version(opts)
+      get_latest_github_release('kubernetes', 'kubernetes', opts)
+    end
+
+  end
+end

BIN
public/icons/docs/kubectl/16.png


BIN
public/icons/docs/kubectl/16@2x.png


+ 1 - 0
public/icons/docs/kubectl/SOURCE

@@ -0,0 +1 @@
+https://cncf-branding.netlify.app/projects/kubernetes/