Prechádzať zdrojové kódy

Merge pull request #882 from jmerle/enzyme

Add Enzyme documentation
Jasper van Merle 6 rokov pred
rodič
commit
9f2941cd27

+ 5 - 0
assets/javascripts/templates/pages/about_tmpl.coffee

@@ -266,6 +266,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',

+ 41 - 0
lib/docs/filters/enzyme/clean_html.rb

@@ -0,0 +1,41 @@
+module Docs
+  class Enzyme
+    class CleanHtmlFilter < Filter
+      def call
+        @doc = at_css('.page-inner > section')
+
+        # Remove badges
+        if root_page?
+          css('a > img').each do |node|
+            node.parent.remove
+          end
+        end
+
+        # Clean headers
+        css('h1').each do |node|
+          node.content = node.content
+        end
+
+        # Make headers on reference pages bigger
+        if subpath.include?('api/')
+          css('h3, 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

+ 24 - 0
lib/docs/scrapers/enzyme.rb

@@ -0,0 +1,24 @@
+module Docs
+  class Enzyme < UrlScraper
+    self.type = 'simple'
+    self.release = '3.10.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 docs/guides.html docs/api/ CONTRIBUTING.html)
+
+    options[:attribution] = <<-HTML
+      &copy; 2015 Airbnb, Inc.<br>
+      Licensed under the MIT License.
+    HTML
+
+    def get_latest_version(opts)
+      get_npm_version('enzyme', opts)
+    end
+  end
+end