From 7b358f6f28d41f2a1c98ce55632b688b5558ca3c Mon Sep 17 00:00:00 2001 From: Thibaut Date: Sun, 21 Dec 2014 11:26:10 -0500 Subject: [PATCH] Add React documentation --- assets/images/icons.png | Bin 24463 -> 24855 bytes assets/images/icons@2x.png | Bin 62514 -> 63322 bytes assets/javascripts/news.json | 4 +-- .../templates/pages/about_tmpl.coffee | 5 +++ assets/javascripts/views/pages/react.coffee | 9 +++++ assets/stylesheets/application.css.scss | 1 + assets/stylesheets/components/_page.scss | 1 + assets/stylesheets/global/_icons.scss | 1 + assets/stylesheets/pages/_react.scss | 8 +++++ lib/docs/filters/react/clean_html.rb | 31 ++++++++++++++++ lib/docs/filters/react/entries.rb | 34 ++++++++++++++++++ lib/docs/scrapers/react.rb | 23 ++++++++++++ public/icons/docs/react/16.png | Bin 0 -> 495 bytes public/icons/docs/react/16@2x.png | Bin 0 -> 830 bytes public/icons/docs/react/SOURCE | 1 + 15 files changed, 116 insertions(+), 2 deletions(-) create mode 100644 assets/javascripts/views/pages/react.coffee create mode 100644 assets/stylesheets/pages/_react.scss create mode 100644 lib/docs/filters/react/clean_html.rb create mode 100644 lib/docs/filters/react/entries.rb create mode 100644 lib/docs/scrapers/react.rb create mode 100644 public/icons/docs/react/16.png create mode 100644 public/icons/docs/react/16@2x.png create mode 100644 public/icons/docs/react/SOURCE diff --git a/assets/images/icons.png b/assets/images/icons.png index b4eda14a35fb8583b6c32dee323c2679085d4c95..4dd556a4fb9736e110452b9d14a1b56b14f5ac94 100644 GIT binary patch delta 6235 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 FV1iXVU~K>Z delta 5840 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 QQUCw|07*qoM6N<$g6F_?XaE2J delta 11515 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 Zt^js9st%7=q8#u~6lLGZRKQFE{|~33_FMn} diff --git a/assets/javascripts/news.json b/assets/javascripts/news.json index 23f3095d..422c46e0 100644 --- a/assets/javascripts/news.json +++ b/assets/javascripts/news.json @@ -1,6 +1,6 @@ [ - [ "2014-12-20", - "New RethinkDB documentation" + [ "2014-12-21", + "New React and RethinkDB documentations" ], [ "2014-11-30", "New PHPUnit and Nokogiri documentations" diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee index 5ab6e593..a0e5557a 100644 --- a/assets/javascripts/templates/pages/about_tmpl.coffee +++ b/assets/javascripts/templates/pages/about_tmpl.coffee @@ -253,6 +253,11 @@ credits = [ '1990-2014 Python Software Foundation
Python is a trademark of the Python Software Foundation.', 'PSFL', 'http://docs.python.org/3/license.html' + ], [ + 'React', + '2013-2014 Facebook Inc.', + 'CC BY', + 'https://raw.githubusercontent.com/facebook/react/master/LICENSE-docs' ], [ 'Redis', '2009-2014 Salvatore Sanfilippo', diff --git a/assets/javascripts/views/pages/react.coffee b/assets/javascripts/views/pages/react.coffee new file mode 100644 index 00000000..1432200e --- /dev/null +++ b/assets/javascripts/views/pages/react.coffee @@ -0,0 +1,9 @@ +#= require views/pages/base + +class app.views.ReactPage extends app.views.BasePage + afterRender: -> + for el in @findAllByTag 'pre' + switch el.getAttribute('data-lang') + when 'html' then @highlightCode el, 'markup' + when 'javascript' then @highlightCode el, 'javascript' + return diff --git a/assets/stylesheets/application.css.scss b/assets/stylesheets/application.css.scss index b6c27952..a1a09878 100644 --- a/assets/stylesheets/application.css.scss +++ b/assets/stylesheets/application.css.scss @@ -57,6 +57,7 @@ 'pages/phpunit', 'pages/postgres', 'pages/rdoc', + 'pages/react', 'pages/redis', 'pages/requirejs', 'pages/rethinkdb', diff --git a/assets/stylesheets/components/_page.scss b/assets/stylesheets/components/_page.scss index 420d856a..30935d85 100644 --- a/assets/stylesheets/components/_page.scss +++ b/assets/stylesheets/components/_page.scss @@ -15,6 +15,7 @@ iframe { display: block; + margin-bottom: 1em; padding: 1px; border: 1px dotted $boxBorder; border-radius: 3px; diff --git a/assets/stylesheets/global/_icons.scss b/assets/stylesheets/global/_icons.scss index e4c71c31..ace3022f 100644 --- a/assets/stylesheets/global/_icons.scss +++ b/assets/stylesheets/global/_icons.scss @@ -73,3 +73,4 @@ ._icon-phpunit:before { background-position: -3rem -11rem; } ._icon-nokogiri:before { background-position: -4rem -11rem; } ._icon-rethinkdb:before { background-position: 0 -12rem; } +._icon-react:before { background-position: -1rem -12rem; } diff --git a/assets/stylesheets/pages/_react.scss b/assets/stylesheets/pages/_react.scss new file mode 100644 index 00000000..dbed0046 --- /dev/null +++ b/assets/stylesheets/pages/_react.scss @@ -0,0 +1,8 @@ +._react { + > h2 { @extend %block-heading; } + > h3 { @extend %block-label, %label-blue; } + > h4 { font-size: 1em; } + + code { @extend %label; } + blockquote { @extend %note; } +} diff --git a/lib/docs/filters/react/clean_html.rb b/lib/docs/filters/react/clean_html.rb new file mode 100644 index 00000000..a9a7d829 --- /dev/null +++ b/lib/docs/filters/react/clean_html.rb @@ -0,0 +1,31 @@ +module Docs + class React + class CleanHtmlFilter < Filter + def call + @doc = at_css('.inner-content') + + if root_page? + at_css('h1').content = 'React Documentation' + end + + css('.docs-prevnext', '.hash-link', '.edit-page-link').remove + + css('a.anchor').each do |node| + node.parent['id'] = node['name'] + end + + css('.highlight').each do |node| + node.name = 'pre' + node['data-lang'] = node.at_css('[data-lang]')['data-lang'] + node.content = node.content + end + + css('blockquote > p:first-child').each do |node| + node.remove if node.content.strip == 'Note:' + end + + doc + end + end + end +end diff --git a/lib/docs/filters/react/entries.rb b/lib/docs/filters/react/entries.rb new file mode 100644 index 00000000..c6b707e2 --- /dev/null +++ b/lib/docs/filters/react/entries.rb @@ -0,0 +1,34 @@ +module Docs + class React + class EntriesFilter < Docs::EntriesFilter + API_SLUGS = %w( + top-level-api + component-api + component-specs + ) + + def get_name + at_css('h1').child.content + end + + def get_type + link = at_css('.nav-docs-section .active') + section = link.ancestors('.nav-docs-section').first + section.at_css('h3').content + end + + def additional_entries + return [] unless API_SLUGS.include?(slug) + + css('.inner-content h3, .inner-content h4').map do |node| + name = node.content + name.remove! %r{[#\(\)]} + name.remove! %r{\w+\:} + id = node.at_css('.anchor')['name'] + type = slug.include?('component') ? 'Component' : 'React' + [name, id, type] + end + end + end + end +end diff --git a/lib/docs/scrapers/react.rb b/lib/docs/scrapers/react.rb new file mode 100644 index 00000000..80879542 --- /dev/null +++ b/lib/docs/scrapers/react.rb @@ -0,0 +1,23 @@ +module Docs + class React < UrlScraper + self.name = 'React' + self.type = 'react' + self.version = '0.12.2' + self.base_url = 'http://facebook.github.io/react/docs/' + self.root_path = 'getting-started.html' + + html_filters.push 'react/entries', 'react/clean_html' + + options[:container] = '.documentationContent' + + options[:skip] = %w( + videos.html + complementary-tools.html + examples.html) + + options[:attribution] = <<-HTML + © 2013–2014 Facebook Inc.
+ Licensed under the Creative Commons Attribution 4.0 International Public License. + HTML + end +end diff --git a/public/icons/docs/react/16.png b/public/icons/docs/react/16.png new file mode 100644 index 0000000000000000000000000000000000000000..2d384517115ac7b1e6ea4af427549d3fe34d01b1 GIT binary patch literal 495 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMflK`I(S7l{oB~;)!dAW{*o34|) zu9JtZv!|hNs98*!d3>f-dWmgey<=^!Q{zOB2}_jK)V!vy@}9LmWXpLiD?8)h7>`NI zOe2!Krmgm#xy~#))o0G8fE5Qc&8=;V8tjT2UD{@7TRRx}M;HY}xOU8P?U=2mXP|Ci zY!Vu$s-tI-lJDF+MaSO7JU&ZBQ#)YgL2Vny@Vz$^Z~gX|u-Kup(|g7`hw5%sZCzDu z9n17$yV4fV$t%2PZ}6P5!e{Pg-v!(J7VipJzCURFiQtW=?91B1c3uhFea)?FuIJR1 z`s*cL0R78a666=`>GkB<^WP2kWq|@)JzX3_D&j)Vx;8aCFt`MAggkyHS6VJvzWaYI z+oZS&x31oL4rBSu_Eu;A}_pgIr{T!1$(K}!sW@6pG&{6{)&a-Q4}|w>8iM44$rjF6*2UngHii!)yQm literal 0 HcmV?d00001 diff --git a/public/icons/docs/react/16@2x.png b/public/icons/docs/react/16@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..016a0c3c87d04e2e08cad9d60860f3068812290a GIT binary patch literal 830 zcmV-E1Ht@>P)#SijptgOy2>s9nzOSisz0)%9T5 z_%BINR=U`9cUP^rOGv&|$YC|bwlD?LGA*7hSNCtuX_RkzVbi=Ht~RwgbmQm@G-EiX~4 z#9-I>F;7=6MNCVWu3O3HU(@nEae!60(?f!jOr5h_%<5IQ(jp@xR=U+NN>W9LnlVjO zMvR|5aDF>$cs_K3KzfQ`*7rPbeNd>tP^!X2hL>K^@JNuPEI&j@k)`cO0P*uECGreS*MI;30i#JoK~#8Nm6PR;D=`d(Q`~ii z%goHoxXjFa8Q%W^?j&uht5K)Bdw#^S^ySEQ9AsKUX3&utt(lO)2rFbXAOtIg7XEPu zo;U*}2{