From 46f6db4a904478dbf45c4d1701b627f3ae60cfed Mon Sep 17 00:00:00 2001 From: Thibaut Date: Tue, 1 Jul 2014 13:04:12 -0400 Subject: [PATCH] Add Chai documentation --- assets/images/icons.png | Bin 20043 -> 20716 bytes assets/images/icons@2x.png | Bin 51028 -> 53234 bytes .../templates/pages/about_tmpl.coffee | 5 ++++ .../templates/pages/news_tmpl.coffee | 5 +++- assets/javascripts/views/pages/chai.coffee | 4 +++ assets/stylesheets/application.css.scss | 1 + assets/stylesheets/global/_icons.scss | 1 + assets/stylesheets/pages/_chai.scss | 13 ++++++++++ lib/docs/filters/chai/clean_html.rb | 24 ++++++++++++++++++ lib/docs/filters/chai/entries.rb | 22 ++++++++++++++++ lib/docs/scrapers/chai.rb | 23 +++++++++++++++++ public/icons/docs/chai/16.png | Bin 0 -> 804 bytes public/icons/docs/chai/16@2x.png | Bin 0 -> 2239 bytes public/icons/docs/chai/SOURCE | 1 + 14 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 assets/javascripts/views/pages/chai.coffee create mode 100644 assets/stylesheets/pages/_chai.scss create mode 100644 lib/docs/filters/chai/clean_html.rb create mode 100644 lib/docs/filters/chai/entries.rb create mode 100644 lib/docs/scrapers/chai.rb create mode 100644 public/icons/docs/chai/16.png create mode 100644 public/icons/docs/chai/16@2x.png create mode 100644 public/icons/docs/chai/SOURCE diff --git a/assets/images/icons.png b/assets/images/icons.png index a9977a6511699b14d92ca2c4f8385ef3adb7eb4a..cd4c124a4407c0816611272241c7d9c3be116049 100644 GIT binary patch delta 11031 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 O0000O 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 S7zP0V0000J}Z>~ diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee index 8e4a50df..342cc526 100644 --- a/assets/javascripts/templates/pages/about_tmpl.coffee +++ b/assets/javascripts/templates/pages/about_tmpl.coffee @@ -90,6 +90,11 @@ credits = [ 'cppreference.com', 'CC BY-SA', 'http://en.cppreference.com/w/Cppreference:Copyright/CC-BY-SA' + ], [ + 'Chai', + '2011-2014 Jake Luer', + 'MIT', + 'https://github.com/chaijs/chai/blob/master/README.md#license' ], [ 'CoffeeScript', '2009-2014 Jeremy Ashkenas', diff --git a/assets/javascripts/templates/pages/news_tmpl.coffee b/assets/javascripts/templates/pages/news_tmpl.coffee index 5dcede7c..febe0ffa 100644 --- a/assets/javascripts/templates/pages/news_tmpl.coffee +++ b/assets/javascripts/templates/pages/news_tmpl.coffee @@ -24,7 +24,10 @@ newsItem = (date, news) -> result app.news = [ - [ 1402790400000, # June 15, 2014 + [ 1404172800000, # July 1, 2014 + """ New Chai documentation """, + ], [ + 1402790400000, # June 15, 2014 """ New RequireJS documentation """, ], [ 1402704000000, # June 14, 2014 diff --git a/assets/javascripts/views/pages/chai.coffee b/assets/javascripts/views/pages/chai.coffee new file mode 100644 index 00000000..ad3a3834 --- /dev/null +++ b/assets/javascripts/views/pages/chai.coffee @@ -0,0 +1,4 @@ +#= require views/pages/base +#= require views/pages/underscore + +app.views.ChaiPage = app.views.UnderscorePage diff --git a/assets/stylesheets/application.css.scss b/assets/stylesheets/application.css.scss index 937cdd6f..c84211aa 100644 --- a/assets/stylesheets/application.css.scss +++ b/assets/stylesheets/application.css.scss @@ -30,6 +30,7 @@ @import 'pages/angular', 'pages/c', + 'pages/chai', 'pages/coffeescript', 'pages/d3', 'pages/ember', diff --git a/assets/stylesheets/global/_icons.scss b/assets/stylesheets/global/_icons.scss index 76e56a18..321959f3 100644 --- a/assets/stylesheets/global/_icons.scss +++ b/assets/stylesheets/global/_icons.scss @@ -59,3 +59,4 @@ ._icon-laravel:before { background-position: 0 -9rem; } ._icon-haskell:before { background-position: -1rem -9rem; } ._icon-requirejs:before { background-position: -2rem -9rem; } +._icon-chai:before { background-position: -3rem -9rem; } diff --git a/assets/stylesheets/pages/_chai.scss b/assets/stylesheets/pages/_chai.scss new file mode 100644 index 00000000..a74567e8 --- /dev/null +++ b/assets/stylesheets/pages/_chai.scss @@ -0,0 +1,13 @@ +._chai { + padding-left: 1rem; + + > h1, > h2, h3 { margin-left: -1rem; } + > h2 { @extend %block-heading; } + h3 { @extend %block-label, %label-blue; } + h4 { font-size: 1em; } + + code { @extend %label; } + blockquote { @extend %note; } + + li.tag span { margin-right: 5px; } +} diff --git a/lib/docs/filters/chai/clean_html.rb b/lib/docs/filters/chai/clean_html.rb new file mode 100644 index 00000000..9a444abd --- /dev/null +++ b/lib/docs/filters/chai/clean_html.rb @@ -0,0 +1,24 @@ +module Docs + class Chai + class CleanHtmlFilter < Filter + def call + @doc = at_css('.documentation .rendered') + + if root_page? + at_css('h1').content = 'Chai Assertion Library' + end + + css('> article', '.header').each do |node| + node.before(node.children).remove + end + + # Remove code highlighting + css('pre').each do |node| + node.content = node.content + end + + doc + end + end + end +end diff --git a/lib/docs/filters/chai/entries.rb b/lib/docs/filters/chai/entries.rb new file mode 100644 index 00000000..8875ed3e --- /dev/null +++ b/lib/docs/filters/chai/entries.rb @@ -0,0 +1,22 @@ +module Docs + class Chai + class EntriesFilter < Docs::EntriesFilter + def get_name + at_css('h1').content + end + + def get_type + subpath.start_with?('/guide') ? 'Guides' : nil + end + + def additional_entries + css('.antiscroll-inner a').each_with_object [] do |node, entries| + id = node['href'].remove('#') + '-section' + node.content.strip.split(' / ').uniq { |name| name.downcase }.each do |name| + entries << [name, id, self.name] + end + end + end + end + end +end diff --git a/lib/docs/scrapers/chai.rb b/lib/docs/scrapers/chai.rb new file mode 100644 index 00000000..02e24cec --- /dev/null +++ b/lib/docs/scrapers/chai.rb @@ -0,0 +1,23 @@ +module Docs + class Chai < UrlScraper + self.name = 'Chai' + self.type = 'chai' + self.version = '1.9.1' + self.base_url = 'http://chaijs.com' + self.root_path = '/api/' + self.initial_paths = %w(/guide/installation/) + + html_filters.push 'chai/entries', 'chai/clean_html' + + options[:container] = '#content' + options[:trailing_slash] = true + + options[:only_patterns] = [/\A\/guide/, /\A\/api/] + options[:skip] = %w(/api/test/ /guide/ /guide/resources/) + + options[:attribution] = <<-HTML + © 2011–2014 Jake Luer
+ Licensed under the MIT License. + HTML + end +end diff --git a/public/icons/docs/chai/16.png b/public/icons/docs/chai/16.png new file mode 100644 index 0000000000000000000000000000000000000000..0b2ab92c971df810702f81577c438b5d2f92f4e4 GIT binary patch literal 804 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