diff --git a/assets/images/docs.png b/assets/images/docs.png index 0eaa66ad..f15d45ab 100644 Binary files a/assets/images/docs.png and b/assets/images/docs.png differ diff --git a/assets/images/docs@2x.png b/assets/images/docs@2x.png index baad1b3c..3ca913d2 100644 Binary files a/assets/images/docs@2x.png and b/assets/images/docs@2x.png differ diff --git a/assets/javascripts/news.json b/assets/javascripts/news.json index 4226d6ae..6b365355 100644 --- a/assets/javascripts/news.json +++ b/assets/javascripts/news.json @@ -1,7 +1,7 @@ [ [ "2016-07-24", - "New documentations: Julia and Crystal" + "New documentations: Julia, Crystal and Redux" ], [ "2016-07-03", "New documentations: CMake and Matplotlib" diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee index 696efe7a..cbf8d811 100644 --- a/assets/javascripts/templates/pages/about_tmpl.coffee +++ b/assets/javascripts/templates/pages/about_tmpl.coffee @@ -435,6 +435,11 @@ credits = [ '2009-2016 Salvatore Sanfilippo', 'CC BY-SA', 'https://creativecommons.org/licenses/by-sa/4.0/' + ], [ + 'Redux', + '2015-2016 Dan Abramov', + 'MIT', + 'https://raw.githubusercontent.com/reactjs/redux/master/LICENSE.md' ], [ 'RequireJS', 'jQuery Foundation and other contributors', diff --git a/assets/javascripts/views/pages/simple.coffee b/assets/javascripts/views/pages/simple.coffee index fbcc2e66..84636982 100644 --- a/assets/javascripts/views/pages/simple.coffee +++ b/assets/javascripts/views/pages/simple.coffee @@ -37,6 +37,7 @@ app.views.PhpunitPage = app.views.PostgresPage = app.views.RamdaPage = app.views.ReactPage = +app.views.ReduxPage = app.views.RethinkdbPage = app.views.RubydocPage = app.views.SinonPage = diff --git a/assets/stylesheets/global/_icons.scss b/assets/stylesheets/global/_icons.scss index d9bb1be7..2c04cd87 100644 --- a/assets/stylesheets/global/_icons.scss +++ b/assets/stylesheets/global/_icons.scss @@ -132,6 +132,7 @@ ._icon-q:before { background-position: -5rem -8rem; } ._icon-crystal:before { background-position: -6rem -8rem; @extend %darkIconFix !optional; } ._icon-julia:before { background-position: -7rem -8rem; @extend %darkIconFix !optional; } +._icon-redux:before { background-position: -8rem -8rem; @extend %darkIconFix !optional; } ._icon-react_native:before { background-position: 0 -9rem; } ._icon-phalcon:before { background-position: -1rem -9rem; } ._icon-matplotlib:before { background-position: -2rem -9rem; } diff --git a/assets/stylesheets/pages/_simple.scss b/assets/stylesheets/pages/_simple.scss index 137d4920..cdb8298d 100644 --- a/assets/stylesheets/pages/_simple.scss +++ b/assets/stylesheets/pages/_simple.scss @@ -14,6 +14,7 @@ p > code, li > code { @extend %label; } blockquote { @extend %note; } + blockquote > h4, blockquote > h5 { margin-top: .25rem; } } ._apache_pig, @@ -29,6 +30,7 @@ ._markdown, ._mocha, ._mongoose, +._redux, ._sinon, ._typescript, ._webpack { diff --git a/lib/docs/filters/redux/clean_html.rb b/lib/docs/filters/redux/clean_html.rb new file mode 100644 index 00000000..7063695b --- /dev/null +++ b/lib/docs/filters/redux/clean_html.rb @@ -0,0 +1,38 @@ +module Docs + class Redux + class CleanHtmlFilter < Filter + def call + @doc = at_css('.page-inner > section') + + css('#edit-link', 'hr').remove + + at_css('h2').name = 'h1' unless at_css('h1') + + if root_page? + at_css('h1').content = 'Redux' + + at_css('a[href="https://www.npmjs.com/package/redux"]').parent.remove + + css('a[target]').each do |node| + node.remove_attribute('target') unless node['href'].start_with?('http') + end + end + + css('a[id]:empty').each do |node| + (node.next_element || node.parent.next_element)['id'] = node['id'] + end + + css('h1 > code').each do |node| + node.before(node.children).remove + end + + css('pre > code').each do |node| + node.parent['data-language'] = node['class'][/lang-(\w+)/, 1] if node['class'] + node.parent.content = node.parent.content + end + + doc + end + end + end +end diff --git a/lib/docs/filters/redux/entries.rb b/lib/docs/filters/redux/entries.rb new file mode 100644 index 00000000..a7ac89d0 --- /dev/null +++ b/lib/docs/filters/redux/entries.rb @@ -0,0 +1,29 @@ +module Docs + class Redux + class EntriesFilter < Docs::EntriesFilter + def get_name + name = at_css('.page-inner h1, .page-inner h2').content + name.sub! %r{\(.*\)}, '()' + name + end + + def get_type + path = slug.split('/') + + if path.length > 1 + path[0].titleize.sub('Api', 'API') + else + 'Miscellaneous' + end + end + + def additional_entries + css('#store-methods + ul > li > a').map do |node| + id = node['href'].remove('#') + name = "#{self.name}##{id}()" + [name, id] + end + end + end + end +end diff --git a/lib/docs/scrapers/redux.rb b/lib/docs/scrapers/redux.rb new file mode 100644 index 00000000..2402a5ad --- /dev/null +++ b/lib/docs/scrapers/redux.rb @@ -0,0 +1,24 @@ +module Docs + class Redux < UrlScraper + self.type = 'redux' + self.release = '3.5.2' + self.base_url = 'http://redux.js.org/docs/' + self.links = { + home: 'http://redux.js.org/', + code: 'https://github.com/reactjs/redux/' + } + + html_filters.push 'redux/entries', 'redux/clean_html' + + options[:skip] = %w(Feedback.html) + + options[:attribution] = <<-HTML + © 2015–2016 Dan Abramov
+ Licensed under the MIT License. + HTML + + stub '' do + request_one('http://redux.js.org/index.html').body + end + end +end diff --git a/public/icons/docs/redux/16.png b/public/icons/docs/redux/16.png new file mode 100644 index 00000000..a716fa58 Binary files /dev/null and b/public/icons/docs/redux/16.png differ diff --git a/public/icons/docs/redux/16@2x.png b/public/icons/docs/redux/16@2x.png new file mode 100644 index 00000000..0aa4f3ac Binary files /dev/null and b/public/icons/docs/redux/16@2x.png differ diff --git a/public/icons/docs/redux/SOURCE b/public/icons/docs/redux/SOURCE new file mode 100644 index 00000000..c63f6d4a --- /dev/null +++ b/public/icons/docs/redux/SOURCE @@ -0,0 +1 @@ +http://redux.js.org/gitbook/images/favicon.ico