Unified · Split
| @@ -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 | ||
| @@ -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 | ||
| @@ -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> © 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 | ||