From 1cac51952a32d59489fe3a4b89d6b92eb2645fa4 Mon Sep 17 00:00:00 2001 From: Simon Legner Date: Tue, 30 Jul 2024 07:12:08 +0200 Subject: [PATCH] man: better entries --- lib/docs/filters/man/clean_html.rb | 1 + lib/docs/filters/man/entries.rb | 17 ++++++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) 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