Explorar o código

Add Enzyme documentation

Jasper van Merle %!s(int64=7) %!d(string=hai) anos
pai
achega
552b526509

+ 5 - 0
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',

+ 34 - 0
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

+ 33 - 0
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

+ 20 - 0
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
+      &copy; 2015 Airbnb, Inc.<br>
+      Licensed under the MIT License.
+    HTML
+  end
+end