Skip to content

Commit 2a5fbcc

Browse files
committed
Add Linux man pages documentation
1 parent bc530da commit 2a5fbcc

File tree

4 files changed

+71
-0
lines changed

4 files changed

+71
-0
lines changed

docs/file-scrapers.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,13 @@ $GS = '/usr/local/opt/ghostscript/bin/gs'; # GhostScript
142142
```
143143
</details>
144144

145+
## Man
146+
147+
```sh
148+
wget --recursive --no-parent https://man7.org/linux/man-pages/
149+
mv man7.org/linux/man-pages/ docs/man/
150+
```
151+
145152
## NumPy
146153

147154
```sh

lib/docs/filters/man/clean_html.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
module Docs
2+
class Man
3+
class CleanHtmlFilter < Filter
4+
def call
5+
css('.page-top').remove
6+
css('.nav-bar').remove
7+
css('.nav-end').remove
8+
css('.sec-table').remove
9+
css('a[href="#top_of_page"]').remove
10+
css('.end-man-text').remove
11+
css('.start-footer').remove
12+
css('.footer').remove
13+
css('.end-footer').remove
14+
css('form[action="https://www.google.com/search"]').remove
15+
doc
16+
end
17+
end
18+
end
19+
end

lib/docs/filters/man/entries.rb

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
module Docs
2+
class Man
3+
class EntriesFilter < Docs::EntriesFilter
4+
5+
def get_name
6+
at_css('h1').content.sub(' — Linux manual page', '')
7+
end
8+
9+
def get_type
10+
'Linux manual page'
11+
end
12+
13+
def entries
14+
return super unless slug == 'dir_by_project'
15+
type0 = nil
16+
return css('*').each_with_object [] do |node, entries|
17+
if node.name == 'h2'
18+
type0 = node.content
19+
elsif node.name == 'a' and node['href'] and node['href'].start_with?('man') and type0
20+
name = node.content + node.next_sibling.content
21+
path = node['href']
22+
entries << Entry.new(name, path, type0)
23+
end
24+
end
25+
end
26+
27+
end
28+
end
29+
end

lib/docs/scrapers/man.rb

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
module Docs
2+
class Man < FileScraper
3+
self.name = 'Linux man pages'
4+
self.type = 'simple'
5+
self.slug = 'man'
6+
self.base_url = "https://man7.org/linux/man-pages/"
7+
self.initial_paths = %w(dir_by_project.html)
8+
self.links = {
9+
home: 'https://man7.org/linux/man-pages/',
10+
}
11+
html_filters.push 'man/entries', 'man/clean_html'
12+
options[:attribution] = <<-HTML
13+
...
14+
HTML
15+
end
16+
end

0 commit comments

Comments
 (0)