[devdocsgjs/main: 48/64] Add Kubernetes docs




commit 216a9d8f8eee154c322f1bf9e3ffba07c413c21e
Author: Fouad <m8fouad gmail com>
Date:   Sat Apr 23 04:19:56 2022 +0200

    Add Kubernetes docs

 .../javascripts/templates/pages/about_tmpl.coffee  |   5 +++
 assets/stylesheets/application.css.scss            |   1 +
 assets/stylesheets/pages/_kubernetes.scss          |   4 ++
 lib/docs/filters/kubernetes/clean_html.rb          |  18 ++++++++
 lib/docs/filters/kubernetes/entries.rb             |  35 ++++++++++++++++
 lib/docs/scrapers/kubernetes.rb                    |  46 +++++++++++++++++++++
 public/icons/docs/kubernetes/16.png                | Bin 0 -> 790 bytes
 public/icons/docs/kubernetes/16 2x png             | Bin 0 -> 1887 bytes
 public/icons/docs/kubernetes/SOURCE                |   1 +
 9 files changed, 110 insertions(+)
---
diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee 
b/assets/javascripts/templates/pages/about_tmpl.coffee
index e4914dc7..b9e4fd9a 100644
--- a/assets/javascripts/templates/pages/about_tmpl.coffee
+++ b/assets/javascripts/templates/pages/about_tmpl.coffee
@@ -482,6 +482,11 @@ credits = [
     '2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors',
     'Apache',
     'https://raw.githubusercontent.com/JetBrains/kotlin/master/license/LICENSE.txt'
+  ], [
+    'Kubernetes',
+    '2022 The Kubernetes Authors and The Linux Foundation',
+    'Apache License 2.0',
+    'https://github.com/kubernetes/kubernetes/blob/master/LICENSE'
   ], [
     'Laravel',
     'Taylor Otwell',
diff --git a/assets/stylesheets/application.css.scss b/assets/stylesheets/application.css.scss
index 1d5da325..dbaf152a 100644
--- a/assets/stylesheets/application.css.scss
+++ b/assets/stylesheets/application.css.scss
@@ -74,6 +74,7 @@
         'pages/julia',
         'pages/knockout',
         'pages/kotlin',
+        'pages/kubernetes',
         'pages/laravel',
         'pages/liquid',
         'pages/love',
diff --git a/assets/stylesheets/pages/_kubernetes.scss b/assets/stylesheets/pages/_kubernetes.scss
new file mode 100644
index 00000000..52791ba3
--- /dev/null
+++ b/assets/stylesheets/pages/_kubernetes.scss
@@ -0,0 +1,4 @@
+._kubernetes {
+  @extend %simple;
+
+}
diff --git a/lib/docs/filters/kubernetes/clean_html.rb b/lib/docs/filters/kubernetes/clean_html.rb
new file mode 100644
index 00000000..3f38ae78
--- /dev/null
+++ b/lib/docs/filters/kubernetes/clean_html.rb
@@ -0,0 +1,18 @@
+module Docs
+  class Kubernetes
+    class CleanHtmlFilter < Filter
+
+      def call
+
+        # remove the API Operations section from the docs
+        # by removing the h2 of id=Opetations
+        # and all the preceding elements
+        css('#Operations ~ *').remove
+        css('#Operations').remove
+
+        doc 
+      end
+
+    end
+  end
+end
diff --git a/lib/docs/filters/kubernetes/entries.rb b/lib/docs/filters/kubernetes/entries.rb
new file mode 100644
index 00000000..85e240a9
--- /dev/null
+++ b/lib/docs/filters/kubernetes/entries.rb
@@ -0,0 +1,35 @@
+module Docs
+  class Kubernetes
+    class EntriesFilter < Docs::EntriesFilter
+
+      def get_name
+        at_css('h1').content
+      end
+
+      def get_type
+        name
+      end
+
+      def additional_entries
+        entries = css('h2').to_a()
+        # remove the Operations section
+        entries.filter! {|node| node['id'] != 'Operations' }
+        # remove the ObjectList section
+        entries.filter! {|node| node['id'] != name + 'List' }
+        # remove the Object section, most of the documents start with (h1.Pod => h2.Pod h2.PodSpec ...)
+        entries.filter! {|node| node['id'] != name }
+        
+        entries.map do |node|
+          # split all names into YAML object notation (ConfigMapSpec) ==> (ConfigMap.Spec)
+          child_name = node.content
+          if child_name.starts_with?(name) && child_name.length > name.length
+            child_name = name + child_name.sub(name, '.')
+          end
+
+          [child_name, node['id']]
+        end
+      end
+
+    end
+  end
+end
diff --git a/lib/docs/scrapers/kubernetes.rb b/lib/docs/scrapers/kubernetes.rb
new file mode 100644
index 00000000..eb910846
--- /dev/null
+++ b/lib/docs/scrapers/kubernetes.rb
@@ -0,0 +1,46 @@
+module Docs
+  class Kubernetes < UrlScraper
+    self.name = 'Kubernetes'
+    self.type = 'kubernetes'
+    self.root_path = '/'
+    self.links = {
+      home: 'https://kubernetes.io/',
+      code: 'https://github.com/kubernetes/kubernetes'
+    }
+    self.release = "1.23"
+
+    # https://kubernetes.io/docs/reference/kubernetes-api/
+    html_filters.push 'kubernetes/entries', 'kubernetes/clean_html'
+
+    # options[:max_image_size] = 300_000
+    options[:container] = '.td-content'
+
+    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/kubernetes-api/";
+    end
+
+    version '1.20' do
+      self.release = "#{version}"
+      verStr = version.sub('.', '-')
+      self.base_url = "https://v#{verStr}.docs.kubernetes.io/docs/reference/kubernetes-api/";
+    end
+
+    version '1.19' do
+      self.release = "#{version}"
+      verStr = version.sub('.', '-')
+      self.base_url = "https://v#{verStr}.docs.kubernetes.io/docs/reference/kubernetes-api/";
+    end
+
+    def get_latest_version(opts)
+      get_latest_github_release('kubernetes', 'kubernetes', opts)
+    end
+
+  end
+end
diff --git a/public/icons/docs/kubernetes/16.png b/public/icons/docs/kubernetes/16.png
new file mode 100644
index 00000000..79abeb07
Binary files /dev/null and b/public/icons/docs/kubernetes/16.png differ
diff --git a/public/icons/docs/kubernetes/16 2x png b/public/icons/docs/kubernetes/16 2x png
new file mode 100644
index 00000000..9291009d
Binary files /dev/null and b/public/icons/docs/kubernetes/16 2x png differ
diff --git a/public/icons/docs/kubernetes/SOURCE b/public/icons/docs/kubernetes/SOURCE
new file mode 100644
index 00000000..cedbe271
--- /dev/null
+++ b/public/icons/docs/kubernetes/SOURCE
@@ -0,0 +1 @@
+https://cncf-branding.netlify.app/projects/kubernetes/
\ No newline at end of file


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]