From 44bb507254b0f3bbcfe57113ece5182ef4818b12 Mon Sep 17 00:00:00 2001 From: Thibaut Date: Sun, 22 Nov 2015 14:14:21 -0500 Subject: [PATCH] Add Relay documentation --- assets/images/icons.png | Bin 36054 -> 36273 bytes assets/images/icons@2x.png | Bin 95576 -> 95885 bytes assets/javascripts/news.json | 2 +- .../templates/pages/about_tmpl.coffee | 2 +- assets/stylesheets/global/_icons.scss | 1 + assets/stylesheets/pages/_react.scss | 2 +- lib/docs/filters/react/clean_html.rb | 8 +++++++ lib/docs/filters/react/entries.rb | 17 +++++++++++++- lib/docs/scrapers/relay.rb | 21 ++++++++++++++++++ public/icons/docs/relay/16.png | Bin 0 -> 298 bytes public/icons/docs/relay/16@2x.png | Bin 0 -> 317 bytes 11 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 lib/docs/scrapers/relay.rb create mode 100644 public/icons/docs/relay/16.png create mode 100644 public/icons/docs/relay/16@2x.png diff --git a/assets/images/icons.png b/assets/images/icons.png index 8b054317dd07e526710835af6892726761ed0eed..f26641e6fa67b02fd941f0da1b3fdc472b212895 100644 GIT binary patch delta 6502 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 M07*qoM6N<$f;hsrT>t<8 delta 6281 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 diff --git a/assets/images/icons@2x.png b/assets/images/icons@2x.png index df16b36d96f0b65b29b077cb45db4fcbeebcd42f..407590bf8c0ed101814bbc50a48a84b7bdc877ca 100644 GIT binary patch delta 10194 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 M07*qoM6N<$f<0Sq=>Px# delta 9883 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 N00>D%PDHLkV1m+{Y3~34 diff --git a/assets/javascripts/news.json b/assets/javascripts/news.json index a9364fa3..72ebbb9f 100644 --- a/assets/javascripts/news.json +++ b/assets/javascripts/news.json @@ -1,7 +1,7 @@ [ [ "2015-11-22", - "New documentations: Dojo and Flow" + "New documentations: Dojo, Relay and Flow" ], [ "2015-11-08", "New documentations: Elixir and Vagrant" diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee index c2c51db6..72a6163f 100644 --- a/assets/javascripts/templates/pages/about_tmpl.coffee +++ b/assets/javascripts/templates/pages/about_tmpl.coffee @@ -325,7 +325,7 @@ credits = [ 'MIT', 'https://raw.githubusercontent.com/kriskowal/q/v1/LICENSE' ], [ - 'React, React Native, Flow', + 'React, React Native, Flow, Relay', '2013-2015 Facebook Inc.', 'CC BY', 'https://raw.githubusercontent.com/facebook/react/master/LICENSE-docs' diff --git a/assets/stylesheets/global/_icons.scss b/assets/stylesheets/global/_icons.scss index 5414aec4..274f8129 100644 --- a/assets/stylesheets/global/_icons.scss +++ b/assets/stylesheets/global/_icons.scss @@ -120,3 +120,4 @@ ._icon-vagrant:before { background-position: -5rem -9rem; } ._icon-dojo:before { background-position: -6rem -9rem; } ._icon-flow:before { background-position: -7rem -9rem; } +._icon-relay:before { background-position: -8rem -9rem; } diff --git a/assets/stylesheets/pages/_react.scss b/assets/stylesheets/pages/_react.scss index 22ca64e6..74a913a9 100644 --- a/assets/stylesheets/pages/_react.scss +++ b/assets/stylesheets/pages/_react.scss @@ -3,7 +3,7 @@ > h3 { @extend %block-label, %label-blue; } > h4 { @extend %block-label; } - p code { @extend %label; } + p code, li code { @extend %label; } blockquote { @extend %note; } span.platform { float: right; } diff --git a/lib/docs/filters/react/clean_html.rb b/lib/docs/filters/react/clean_html.rb index 40d8e93b..31280ccf 100644 --- a/lib/docs/filters/react/clean_html.rb +++ b/lib/docs/filters/react/clean_html.rb @@ -41,6 +41,14 @@ module Docs node.before(node.children).remove end + css('a pre').each do |node| + node.name = 'code' + end + + css('a[target]').each do |node| + node.remove_attribute('target') + end + doc end end diff --git a/lib/docs/filters/react/entries.rb b/lib/docs/filters/react/entries.rb index 938bda5e..1904c286 100644 --- a/lib/docs/filters/react/entries.rb +++ b/lib/docs/filters/react/entries.rb @@ -37,7 +37,9 @@ module Docs [name, id, type] end else - css('.props > .prop > .propTitle').each_with_object([]) do |node, entries| + entries = [] + + css('.props > .prop > .propTitle').each do |node| # react-native name = node.children.find(&:text?).try(:content) next if name.blank? sep = node.content.include?('static') ? '.' : '#' @@ -46,6 +48,19 @@ module Docs id = node.at_css('.anchor')['name'] entries << [name, id] end + + css('.apiIndex a pre').each do |node| # relay + next unless node.parent['href'].start_with?('#') + id = node.parent['href'].remove('#') + name = node.content.strip + sep = name.start_with?('static') ? '.' : '#' + name.remove! %r{(abstract|static) } + name.sub! %r{\(.*\)}, '()' + name.prepend(self.name + sep) + entries << [name, id] + end + + entries end end end diff --git a/lib/docs/scrapers/relay.rb b/lib/docs/scrapers/relay.rb new file mode 100644 index 00000000..12f1df76 --- /dev/null +++ b/lib/docs/scrapers/relay.rb @@ -0,0 +1,21 @@ +module Docs + class Relay < React + self.type = 'react' + self.version = '0.5' + self.base_url = 'https://facebook.github.io/relay/docs/' + self.root_path = 'getting-started.html' + self.links = { + home: 'https://facebook.github.io/relay/', + code: 'https://github.com/facebook/relay' + } + + options[:root_title] = 'Relay Documentation' + options[:only_patterns] = nil + options[:skip] = %w(videos.html graphql-further-reading.html) + + options[:attribution] = <<-HTML + © 2013–2015 Facebook Inc.
+ Licensed under the BSD License. + HTML + end +end diff --git a/public/icons/docs/relay/16.png b/public/icons/docs/relay/16.png new file mode 100644 index 0000000000000000000000000000000000000000..11c4ca21aba7a37b4d97d32c12d927b00ad29286 GIT binary patch literal 298 zcmV+_0oDGAP)9@Vd3Liz?)=Z>$8M;!bp02 z#hEART5Tu&hLrn@laUuz957tPw1I7;E{*8!Y^D8yigtf8kh@ZzN5gq~T1{d#V}n6-&M#kKgbl1#WVn=|AhB)00#O zni@}#$zSjUb%A2aRuJi)VnamyH)gAa1S2VS&vnoK`ubg@xeZ*n;3?$%vo5G7*>S;L wcz(k6k!S}<-hbnsAjuPS28uKH^@MS758H-=D|HWyGynhq07*qoM6N<$f}B!=>_i*hlIN{3hoXaSlk{LcXmfsfC*o}&!4oL zE&Wq^fF7U+{8s@E7=ge#!vA)_D8v&dh)19d{xDG*AT+X%d?f)h5Kmkn6@fBDq8$Q> zaszy^4uK01U8)DI^sJF!ryGVGzzxu62MjYS52?cTC_Ci?Gr%z!&>> zdeQohCX~QZ>zi;8+pzgpSMdpIAgN#qdl-}itfLQ-LK!%Mz&d>81{6Y|4#|j-AsrVG zPt3>-_<>R!LTE(MJzxxXc*+op6No29