History

Addd WebExtensions

Cimbali committed 6 years ago

Commit 21443dc1 parent cce7c493 files · +68 −0Browse files

Unified · Split

3 files
  1. lib/docs/filters/web_extensions/clean_html.rb +14 −0
  2. lib/docs/filters/web_extensions/entries.rb +28 −0
  3. lib/docs/scrapers/web_extensions.rb +26 −0
lib/docs/filters/web_extensions/clean_html.rb+14−0
@@ -0,0 +1,14 @@
1module 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
14end
lib/docs/filters/web_extensions/entries.rb+28−0
@@ -0,0 +1,28 @@
1module 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
28end
lib/docs/scrapers/web_extensions.rb+26−0
@@ -0,0 +1,26 @@
1module 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
26end