Pārlūkot izejas kodu

Merge pull request #1319 from scherepn/fish-update

Update Fish scraper
Simon Legner 5 gadi atpakaļ
vecāks
revīzija
5b58c402cc

+ 1 - 1
lib/docs/filters/fish/clean_html.rb → lib/docs/filters/fish/clean_html_custom.rb

@@ -1,6 +1,6 @@
 module Docs
   class Fish
-    class CleanHtmlFilter < Filter
+    class CleanHtmlCustomFilter < Filter
       def call
         @doc = at_css('.fish_right_bar')
 

+ 10 - 0
lib/docs/filters/fish/clean_html_sphinx.rb

@@ -0,0 +1,10 @@
+module Docs
+  class Fish
+    class CleanHtmlSphinxFilter < Filter
+      def call
+        @doc = at_css('.body')
+        doc
+      end
+    end
+  end
+end

+ 1 - 1
lib/docs/filters/fish/entries.rb → lib/docs/filters/fish/entries_custom.rb

@@ -1,6 +1,6 @@
 module Docs
   class Fish
-    class EntriesFilter < Docs::EntriesFilter
+    class EntriesCustomFilter < Docs::EntriesFilter
       def get_name
         if slug == 'faq'
           'FAQ'

+ 39 - 0
lib/docs/filters/fish/entries_sphinx.rb

@@ -0,0 +1,39 @@
+module Docs
+  class Fish
+    class EntriesSphinxFilter < Docs::EntriesFilter
+      def get_name
+        if slug == 'faq'
+          'FAQ'
+        elsif slug.starts_with?('cmds/')
+          slug.split('/').last
+        else
+          slug.capitalize
+        end
+      end
+
+      def get_type
+        if root_page? || slug == 'faq'
+          'Manual'
+        elsif slug.starts_with?('cmds')
+          'Commands'
+        elsif slug == 'tutorial'
+          'Tutorial'
+        else
+          nil # Remaining pages are indexes we don't need
+        end
+      end
+
+      def additional_entries
+        if root_page? || slug == 'tutorial'
+          css('h2').map.with_index do |node, i|
+            name = node.content.split(' - ').first.strip
+            name.prepend "#{i + 1}. "
+            [name, node['id'], get_type]
+          end
+        else
+          []
+        end
+      end
+    end
+  end
+end

+ 23 - 3
lib/docs/scrapers/fish.rb

@@ -8,49 +8,69 @@ module Docs
       code: 'https://github.com/fish-shell/fish-shell'
     }
 
-    html_filters.push 'fish/clean_html', 'fish/entries'
-
     options[:skip] = %w(design.html license.html)
 
     # https://fishshell.com/docs/current/license.html
     options[:attribution] = <<-HTML
-      &copy; 2005&ndash;2009 Axel Liljencrantz<br>
+      &copy; 2019 fish-shell developers<br>
       Licensed under the GNU General Public License, version 2.
     HTML
 
+    version '3.1' do
+      self.release = '3.1.2'
+      self.base_url = "https://fishshell.com/docs/#{version}/"
+
+      options[:skip].concat %w(genindex.html commands.html)
+      html_filters.push 'sphinx/clean_html', 'fish/clean_html_sphinx', 'fish/entries_sphinx'
+    end
+
     version '3.0' do
       self.release = '3.0.1'
       self.base_url = "https://fishshell.com/docs/#{version}/"
+
+      html_filters.push 'fish/clean_html_custom', 'fish/entries_custom'
     end
 
     version '2.7' do
       self.release = '2.7.1'
       self.base_url = "https://fishshell.com/docs/#{version}/"
+
+      html_filters.push 'fish/clean_html_custom', 'fish/entries_custom'
     end
 
     version '2.6' do
       self.release = '2.6.0'
       self.base_url = "https://fishshell.com/docs/#{version}/"
+
+      html_filters.push 'fish/clean_html_custom', 'fish/entries_custom'
     end
 
     version '2.5' do
       self.release = '2.5.0'
       self.base_url = "https://fishshell.com/docs/#{version}/"
+
+      html_filters.push 'fish/clean_html_custom', 'fish/entries_custom'
     end
 
     version '2.4' do
       self.release = '2.4.0'
       self.base_url = "https://fishshell.com/docs/#{version}/"
+
+      html_filters.push 'fish/clean_html_custom', 'fish/entries_custom'
     end
 
     version '2.3' do
       self.release = '2.3.1'
       self.base_url = "https://fishshell.com/docs/#{version}/"
+
+      html_filters.push 'fish/clean_html_custom', 'fish/entries_custom'
     end
 
     version '2.2' do
       self.release = '2.2.0'
       self.base_url = "https://fishshell.com/docs/#{version}/"
+
+      html_filters.push 'fish/clean_html_custom', 'fish/entries_custom'
     end
 
     def get_latest_version(opts)

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


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


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

@@ -0,0 +1 @@
+https://fishshell.com/favicon.ico