[devdocsgjs/main: 419/1867] Add Enzyme documentation




commit 552b526509945c8a5722907d2bab49b1fb0e5dae
Author: Jasper van Merle <jaspervmerle gmail com>
Date:   Sat Oct 6 15:25:47 2018 +0200

    Add Enzyme documentation

 .../javascripts/templates/pages/about_tmpl.coffee  |  5 ++++
 lib/docs/filters/enzyme/clean_html.rb              | 34 ++++++++++++++++++++++
 lib/docs/filters/enzyme/entries.rb                 | 33 +++++++++++++++++++++
 lib/docs/scrapers/enzyme.rb                        | 20 +++++++++++++
 4 files changed, 92 insertions(+)
---
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
+      &copy; 2015 Airbnb, Inc.<br>
+      Licensed under the MIT License.
+    HTML
+  end
+end


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]