diff --git a/lib/docs/filters/fish/clean_html.rb b/lib/docs/filters/fish/clean_html_custom.rb
similarity index 93%
rename from lib/docs/filters/fish/clean_html.rb
rename to lib/docs/filters/fish/clean_html_custom.rb
index 230f29e4..3fd146b8 100644
--- a/lib/docs/filters/fish/clean_html.rb
+++ b/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')
diff --git a/lib/docs/filters/fish/clean_html_sphinx.rb b/lib/docs/filters/fish/clean_html_sphinx.rb
new file mode 100755
index 00000000..1d59c13b
--- /dev/null
+++ b/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
diff --git a/lib/docs/filters/fish/entries.rb b/lib/docs/filters/fish/entries_custom.rb
similarity index 91%
rename from lib/docs/filters/fish/entries.rb
rename to lib/docs/filters/fish/entries_custom.rb
index 9c30f750..0ee9ddf6 100644
--- a/lib/docs/filters/fish/entries.rb
+++ b/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'
diff --git a/lib/docs/filters/fish/entries_sphinx.rb b/lib/docs/filters/fish/entries_sphinx.rb
new file mode 100755
index 00000000..f4fc939d
--- /dev/null
+++ b/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
diff --git a/lib/docs/scrapers/fish.rb b/lib/docs/scrapers/fish.rb
index a8b1ce8b..b57dbd9f 100644
--- a/lib/docs/scrapers/fish.rb
+++ b/lib/docs/scrapers/fish.rb
@@ -8,49 +8,68 @@ 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
- © 2005–2009 Axel Liljencrantz
+ © 2019 fish-shell developers
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}/"
+
+ 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)
diff --git a/public/icons/docs/fish/16.png b/public/icons/docs/fish/16.png
index aea9980a..6baa7a83 100644
Binary files a/public/icons/docs/fish/16.png and b/public/icons/docs/fish/16.png differ
diff --git a/public/icons/docs/fish/16@2x.png b/public/icons/docs/fish/16@2x.png
index 848b77f2..6101c029 100644
Binary files a/public/icons/docs/fish/16@2x.png and b/public/icons/docs/fish/16@2x.png differ
diff --git a/public/icons/docs/fish/SOURCE b/public/icons/docs/fish/SOURCE
new file mode 100644
index 00000000..6043fbfb
--- /dev/null
+++ b/public/icons/docs/fish/SOURCE
@@ -0,0 +1 @@
+https://fishshell.com/favicon.ico