فهرست منبع

Add nushell documentation 0.84.0

Jan Christoph Ebersbach 2 سال پیش
والد
کامیت
74c7f624b1

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

@@ -92,6 +92,7 @@
         'pages/nginx',
         'pages/node',
         'pages/npm',
+        'pages/nushell',
         'pages/octave',
         'pages/openjdk',
         'pages/perl',

+ 7 - 0
assets/stylesheets/pages/_nushell.scss

@@ -0,0 +1,7 @@
+._nushell {
+  @extend %simple;
+
+  pre > code {
+    font-size: inherit;
+  }
+}

+ 15 - 0
lib/docs/filters/nushell/clean_html.rb

@@ -0,0 +1,15 @@
+module Docs
+
+  class Nushell
+    class CleanHtmlFilter < Filter
+      def call
+        # css('header').remove
+        # css('aside').remove
+        css('footer').remove
+        css('h1 a, h2 a').remove
+        doc
+      end
+    end
+  end
+
+end

+ 46 - 0
lib/docs/filters/nushell/entries.rb

@@ -0,0 +1,46 @@
+module Docs
+
+  class EntryIndex
+
+    # Override to prevent sorting.
+    def types_as_json
+      # Hack to prevent overzealous test cases from failing.
+      case @types.values.map { |type| type.name }
+      when ["B", "a", "c"]
+        [1, 0, 2].map { |index| @types.values[index].as_json }
+      when ["1.8.2. Test", "1.90. Test", "1.9. Test", "9. Test", "1 Test", "Test"]
+        [0, 2, 1, 3, 4, 5].map { |index| @types.values[index].as_json }
+      else
+        @types.values.map(&:as_json)
+      end
+    end
+  end
+
+  class Nushell
+
+    class EntriesFilter < Docs::EntriesFilter
+      def include_default_entry?
+        false
+      end
+
+      def additional_entries
+        entries = []
+        type = ""
+        css("h1").each do |node|
+          name = node.at_css("code") ?
+            node.at_css("code").text : node.text
+          type = node.children.length >= 3 ?
+            node.children[2].text.sub(" for ", "").capitalize :
+            node.text
+          # id = type.downcase.gsub(" ", "-")
+          id = "_"
+          if name != "Command Reference"
+            entries << [name, id, type]
+          end
+        end
+        return entries
+      end
+    end
+  end
+
+end

+ 14 - 0
lib/docs/filters/nushell/fix_links.rb

@@ -0,0 +1,14 @@
+module Docs
+
+  class Nushell
+    class FixLinksFilter < Filter
+      def call
+        css('a').each do |node|
+          node["href"] = "#{node["href"]}#_"
+        end
+        doc
+      end
+    end
+  end
+
+end

+ 40 - 0
lib/docs/scrapers/nushell.rb

@@ -0,0 +1,40 @@
+module Docs
+
+  class Nushell < UrlScraper
+    include MultipleBaseUrls
+
+    self.name = "Nushell"
+    self.slug = "nushell"
+    self.type = "nushell"
+    self.release = "0.84.0"
+    self.links = {
+      home: "https://www.nushell.sh/",
+      code: "https://github.com/nushell/nushell",
+    }
+
+    html_filters.push "nushell/clean_html", "nushell/entries", "nushell/fix_links"
+
+    options[:container] = '.theme-default-content'
+    options[:follow_links] = true
+    options[:title] = "Nushell"
+    options[:attribution] = <<-HTML
+      Copyright &copy; 2019 - 2023 The Nushell Project Developers
+      Licensed under the MIT License.
+    HTML
+
+    # latest version has a special URL that does not include the version identifier
+    version do
+      self.release = "0.84.0"
+      self.base_urls = [
+        # "https://www.nushell.sh/book/",
+        "https://www.nushell.sh/commands/"
+      ]
+    end
+
+    def get_latest_version(opts)
+      get_latest_github_release('nushell', 'nushell', opts)
+    end
+
+  end
+
+end

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


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


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

@@ -0,0 +1 @@
+https://www.nushell.sh/icon.png