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 | |