Skip to content

Commit 21443dc

Browse files
committed
Addd WebExtensions
1 parent cce7c49 commit 21443dc

File tree

3 files changed

+68
-0
lines changed

3 files changed

+68
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
module Docs
2+
class WebExtensions
3+
class CleanHtmlFilter < Filter
4+
def call
5+
6+
# Remove all the cruft.
7+
content = at_css('main#content')
8+
content.at_css('aside.metadata').remove
9+
10+
content
11+
end
12+
end
13+
end
14+
end
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
module Docs
2+
class WebExtensions
3+
class EntriesFilter < Docs::EntriesFilter
4+
def get_name
5+
at_css('main#content h1').text
6+
end
7+
8+
def get_type
9+
slug_parts = slug.split('/')
10+
if slug_parts[0] == 'API' and slug_parts.length() > 1
11+
if slug_parts[1] == 'WebRequest'
12+
return 'webRequest'
13+
else
14+
return slug_parts[1]
15+
end
16+
elsif slug_parts[0] == 'manifest.json'
17+
return slug_parts[0]
18+
elsif slug_parts[0] == 'user_interface'
19+
return 'User Interface'
20+
elsif slug_parts.length() > 1
21+
return slug_parts[0]
22+
else
23+
return 'Miscellaneous'
24+
end
25+
end
26+
end
27+
end
28+
end

lib/docs/scrapers/web_extensions.rb

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
module Docs
2+
class WebExtensions < UrlScraper
3+
self.name = 'Web Extensions'
4+
self.slug = 'web_extensions'
5+
self.type = 'simple'
6+
self.links = {
7+
home: 'https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions'
8+
}
9+
10+
self.base_url = 'https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions'
11+
12+
html_filters.push 'web_extensions/entries', 'web_extensions/clean_html'
13+
14+
options[:skip_patterns] = [
15+
/\/contributors\.txt$/
16+
]
17+
18+
options[:attribution] = -> (filter) {
19+
<<-HTML
20+
<a href="#{filter.current_url}">#{filter.result()[:entries][0].name}</a> &copy; 2005-2021 Mozilla and individual contributors.<br>
21+
Licensed under the <a href="https://creativecommons.org/licenses/by-sa/2.5/">Creative Commons Attribution-ShareAlike license</a>
22+
HTML
23+
}
24+
25+
end
26+
end

0 commit comments

Comments
 (0)