diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee index 629682fb..6de04159 100644 --- a/assets/javascripts/templates/pages/about_tmpl.coffee +++ b/assets/javascripts/templates/pages/about_tmpl.coffee @@ -255,6 +255,11 @@ credits = [ '2017 Yehuda Katz, Tom Dale and Ember.js contributors', 'MIT', 'https://raw.githubusercontent.com/emberjs/ember.js/master/LICENSE' + ], [ + 'Enzyme', + '2015 Airbnb, Inc.', + 'MIT', + 'https://raw.githubusercontent.com/airbnb/enzyme/master/LICENSE.md' ], [ 'Erlang', '2010-2017 Ericsson AB', diff --git a/lib/docs/filters/enzyme/clean_html.rb b/lib/docs/filters/enzyme/clean_html.rb new file mode 100644 index 00000000..8a42ad0d --- /dev/null +++ b/lib/docs/filters/enzyme/clean_html.rb @@ -0,0 +1,34 @@ +module Docs + class Enzyme + class CleanHtmlFilter < Filter + def call + @doc = at_css('.page-inner > section') + + # Clean headers + css('h1').each do |node| + node.content = node.content + end + + # Make headers on reference pages bigger + if subpath.include?('ReactWrapper') || subpath.include?('ShallowWrapper') + css('h4').each do |node| + node.name = 'h2' + end + end + + # Make code blocks detectable by Prism + css('pre').each do |node| + cls = node.at_css('code')['class'] + + unless cls.nil? + node['data-language'] = cls.split('-')[1] + end + + node.content = node.content + end + + doc + end + end + end +end diff --git a/lib/docs/filters/enzyme/entries.rb b/lib/docs/filters/enzyme/entries.rb new file mode 100644 index 00000000..aa28bcca --- /dev/null +++ b/lib/docs/filters/enzyme/entries.rb @@ -0,0 +1,33 @@ +module Docs + class Enzyme + class EntriesFilter < Docs::EntriesFilter + def get_name + name = at_css('.page-inner h1').content + + if name.include?('(') + until_parenthesis = name[0..name.index('(')] + + if until_parenthesis.include?(' ') + until_parenthesis[0..-3] + else + until_parenthesis + ')' + end + else + name + end + end + + def get_type + active_level = at_css('.chapter.active')['data-level'] + + # It's a parent level if it contains only one dot + if active_level.count('.') == 1 + at_css('.chapter.active > a').content + else + parent_level = active_level[0..active_level.rindex('.') - 1] + at_css(".chapter[data-level=\"#{parent_level}\"] > a").content + end + end + end + end +end diff --git a/lib/docs/scrapers/enzyme.rb b/lib/docs/scrapers/enzyme.rb new file mode 100644 index 00000000..7c225bdc --- /dev/null +++ b/lib/docs/scrapers/enzyme.rb @@ -0,0 +1,20 @@ +module Docs + class Enzyme < UrlScraper + self.type = 'simple' + self.release = '3.6.0' + self.base_url = 'https://airbnb.io/enzyme/' + self.root_path = 'index.html' + self.links = { + code: 'https://github.com/airbnb/enzyme' + } + + html_filters.push 'enzyme/entries', 'enzyme/clean_html' + + options[:skip] = %w(CHANGELOG.html docs/future.html CONTRIBUTING.html) + + options[:attribution] = <<-HTML + © 2015 Airbnb, Inc.
+ Licensed under the MIT License. + HTML + end +end