Преглед изворни кода

cypress: finish scraper and filters

Jasper van Merle пре 6 година
родитељ
комит
11234ecb45

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

@@ -202,6 +202,12 @@ credits = [
     'Apache',
     'https://raw.githubusercontent.com/crystal-lang/crystal/master/LICENSE'
   ], [
+    'Cypress',
+    '2017 Cypress.io',
+    'MIT',
+    'https://raw.githubusercontent.com/cypress-io/cypress-documentation/develop/LICENSE.md'
+  ],
+  [
     'D',
     '1999-2018 The D Language Foundation',
     'Boost',

+ 12 - 3
lib/docs/filters/cypress/clean_html.rb

@@ -4,12 +4,21 @@ module Docs
   class Cypress
     class CleanHtmlFilter < Filter
       def call
+        article_div = at_css('#article > div')
+        @doc = article_div unless article_div.nil?
+
+        header = at_css('h1.article-title')
+        doc.prepend_child(header) unless header.nil?
+
         css('.article-edit-link').remove
-        css('#sidebar').remove
-        css('article footer').remove
-        css('#article-toc').remove
+        css('.article-footer').remove
         css('.article-footer-updated').remove
 
+        css('pre').each do |node|
+          node.content = node.content
+          node['data-language'] = 'javascript'
+        end
+
         doc
       end
     end

+ 0 - 7
lib/docs/filters/cypress/entries.rb

@@ -8,7 +8,6 @@ module Docs
         core-concepts
         cypress-api
         events
-        examples
         getting-started
         guides
         overview
@@ -30,12 +29,6 @@ module Docs
           end
         end
       end
-
-      def additional_entries
-        css('.sidebar-li > a').map do |node|
-          [node['href']]
-        end
-      end
     end
   end
 end

+ 18 - 15
lib/docs/scrapers/cypress.rb

@@ -2,32 +2,35 @@
 
 module Docs
   class Cypress < UrlScraper
-    # Follow the instructions on https://github.com/cypress-io/cypress-documentation/blob/develop/CONTRIBUTING.md
-    # to run the cypress documentation server locally in the following URL:
-    # self.base_url = 'http://localhost:2222'
-    self.base_url = 'https://docs.cypress.io'
-
     self.name = 'Cypress'
     self.type = 'cypress'
+    self.release = '3.4.1'
+    self.base_url = 'https://docs.cypress.io'
     self.root_path = '/api/api/table-of-contents.html'
+    self.links = {
+      home: 'https://www.cypress.io/',
+      code: 'https://github.com/cypress-io/cypress',
+    }
 
-    html_filters.push 'cypress/clean_html', 'cypress/entries'
+    html_filters.push 'cypress/entries', 'cypress/clean_html'
 
-    options[:root_title] = 'Cypress'
     options[:container] = '#content'
-
+    options[:max_image_size] = 300_000
     options[:include_default_entry] = true
 
-    options[:skip_link] = lambda do |link|
+    options[:skip_patterns] = [/examples\//]
+    options[:skip_link] = ->(link) {
       href = link.attr(:href)
-
-      EntriesFilter::SECTIONS.none? { |section| href.match?("/#{section}/") }
-    end
+      href.nil? ? true : EntriesFilter::SECTIONS.none? { |section| href.match?("/#{section}/") }
+    }
 
     options[:attribution] = <<-HTML
-      © 2018 <a href="https://cypress.io">Cypress.io</a>
-      - Licensed under the
-      <a href="https://github.com/cypress-io/cypress-documentation/blob/develop/LICENSE.md">MIT License</a>.
+      &copy; 2017 Cypress.io<br>
+      Licensed under the MIT License.
     HTML
+
+    def get_latest_version(opts)
+      get_latest_github_release('cypress-io', 'cypress', opts)
+    end
   end
 end