diff --git a/lib/docs/filters/man/clean_html.rb b/lib/docs/filters/man/clean_html.rb
index 1aab6fbd..b78b0425 100644
--- a/lib/docs/filters/man/clean_html.rb
+++ b/lib/docs/filters/man/clean_html.rb
@@ -11,6 +11,7 @@ module Docs
css('.start-footer').remove
css('.footer').remove
css('.end-footer').remove
+ css('.statcounter').remove
css('form[action="https://www.google.com/search"]').remove
doc
end
diff --git a/lib/docs/filters/man/entries.rb b/lib/docs/filters/man/entries.rb
index 66af74d4..72448113 100644
--- a/lib/docs/filters/man/entries.rb
+++ b/lib/docs/filters/man/entries.rb
@@ -2,24 +2,27 @@ module Docs
class Man
class EntriesFilter < Docs::EntriesFilter
+ @@TYPES = {}
+
def get_name
+ return slug.split('/').last.sub(/\.(\d[^.]*)\z/, ' (\1)') if slug.start_with?('man')
at_css('h1').content.sub(' — Linux manual page', '')
end
def get_type
- 'Linux manual page'
+ build_types if slug == 'dir_by_project'
+ @@TYPES[slug] or 'Linux manual page'
end
- def entries
- return super unless slug == 'dir_by_project'
+ def build_types
type0 = nil
- return css('*').each_with_object [] do |node, entries|
+ css('*').each do |node|
if node.name == 'h2'
type0 = node.content
elsif node.name == 'a' and node['href'] and node['href'].start_with?('man') and type0
- name = node.content + node.next_sibling.content
- path = node['href']
- entries << Entry.new(name, path, type0)
+ # name = node.content + node.next_sibling.content
+ slug0 = node['href'].remove(/\.html\z/)
+ @@TYPES[slug0] = type0
end
end
end