Преглед на файлове

feat(nushell): add book

Jan Christoph Ebersbach преди 2 години
родител
ревизия
693d051c8f
променени са 4 файла, в които са добавени 27 реда и са изтрити 14 реда
  1. 0 2
      lib/docs/filters/nushell/clean_html.rb
  2. 20 9
      lib/docs/filters/nushell/entries.rb
  3. 5 1
      lib/docs/filters/nushell/fix_links.rb
  4. 2 2
      lib/docs/scrapers/nushell.rb

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

@@ -3,8 +3,6 @@ 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

+ 20 - 9
lib/docs/filters/nushell/entries.rb

@@ -26,15 +26,26 @@ module Docs
       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"
+        if "#{self.base_url}" == "https://www.nushell.sh/book/" && !self.root_page?
+          active_items = css("a.sidebar-item.active")
+          if active_items.length > 0
+            type = active_items[0].text.strip()
+            name = active_items[-1].text.strip()
+            id = "_"
+            entries << [name, id, type]
+          end
+        else
+          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 self.root_page?
+              id = "#{self.base_url}".split('/')[-1]
+            end
             entries << [name, id, type]
           end
         end

+ 5 - 1
lib/docs/filters/nushell/fix_links.rb

@@ -3,8 +3,12 @@ module Docs
   class Nushell
     class FixLinksFilter < Filter
       def call
+        css('header').remove
+        css('aside').remove
         css('a').each do |node|
-          node["href"] = "#{node["href"]}#_"
+          if !(node["href"].starts_with?("https://") || node["href"].starts_with?("http://"))
+            node["href"] = "#{node["href"]}#_"
+          end
         end
         doc
       end

+ 2 - 2
lib/docs/scrapers/nushell.rb

@@ -14,7 +14,7 @@ module Docs
 
     html_filters.push "nushell/clean_html", "nushell/entries", "nushell/fix_links"
 
-    options[:container] = '.theme-default-content'
+    options[:container] = '.theme-container'
     options[:follow_links] = true
     options[:title] = "Nushell"
     options[:attribution] = <<-HTML
@@ -26,7 +26,7 @@ module Docs
     version do
       self.release = "0.84.0"
       self.base_urls = [
-        # "https://www.nushell.sh/book/",
+        "https://www.nushell.sh/book/",
         "https://www.nushell.sh/commands/"
       ]
     end