Add Linux man pages documentation

This commit is contained in:
Simon Legner 2024-07-30 05:56:12 +02:00
parent bc530daf7f
commit 2a5fbccaf2
4 changed files with 71 additions and 0 deletions

View file

@ -142,6 +142,13 @@ $GS = '/usr/local/opt/ghostscript/bin/gs'; # GhostScript
```
</details>
## Man
```sh
wget --recursive --no-parent https://man7.org/linux/man-pages/
mv man7.org/linux/man-pages/ docs/man/
```
## NumPy
```sh

View file

@ -0,0 +1,19 @@
module Docs
class Man
class CleanHtmlFilter < Filter
def call
css('.page-top').remove
css('.nav-bar').remove
css('.nav-end').remove
css('.sec-table').remove
css('a[href="#top_of_page"]').remove
css('.end-man-text').remove
css('.start-footer').remove
css('.footer').remove
css('.end-footer').remove
css('form[action="https://www.google.com/search"]').remove
doc
end
end
end
end

View file

@ -0,0 +1,29 @@
module Docs
class Man
class EntriesFilter < Docs::EntriesFilter
def get_name
at_css('h1').content.sub(' — Linux manual page', '')
end
def get_type
'Linux manual page'
end
def entries
return super unless slug == 'dir_by_project'
type0 = nil
return css('*').each_with_object [] do |node, entries|
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)
end
end
end
end
end
end

16
lib/docs/scrapers/man.rb Normal file
View file

@ -0,0 +1,16 @@
module Docs
class Man < FileScraper
self.name = 'Linux man pages'
self.type = 'simple'
self.slug = 'man'
self.base_url = "https://man7.org/linux/man-pages/"
self.initial_paths = %w(dir_by_project.html)
self.links = {
home: 'https://man7.org/linux/man-pages/',
}
html_filters.push 'man/entries', 'man/clean_html'
options[:attribution] = <<-HTML
...
HTML
end
end