diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee
index a9a62681..d4d352aa 100644
--- a/assets/javascripts/templates/pages/about_tmpl.coffee
+++ b/assets/javascripts/templates/pages/about_tmpl.coffee
@@ -724,7 +724,7 @@ credits = [
'https://raw.githubusercontent.com/ramda/ramda/master/LICENSE.txt'
], [
'React, React Native, Flow, Relay',
- '2013-present Facebook Inc.',
+ 'Facebook Inc. and its affiliates',
'MIT',
'https://raw.githubusercontent.com/facebook/react/master/LICENSE'
], [
diff --git a/assets/stylesheets/pages/_react_native.scss b/assets/stylesheets/pages/_react_native.scss
index 1345a35f..824c9d19 100644
--- a/assets/stylesheets/pages/_react_native.scss
+++ b/assets/stylesheets/pages/_react_native.scss
@@ -6,4 +6,15 @@
span.platform { float: right; }
span.propType, span.platform { font-weight: normal; }
+
+ .label {
+ display:inline-block;
+ font-size:.85rem;
+ }
+ .label::before {
+ content: "[";
+ }
+ .label::after {
+ content: "]";
+ }
}
diff --git a/lib/docs/filters/react_native/clean_html.rb b/lib/docs/filters/react_native/clean_html.rb
index ecc233be..5450bfa7 100644
--- a/lib/docs/filters/react_native/clean_html.rb
+++ b/lib/docs/filters/react_native/clean_html.rb
@@ -2,13 +2,30 @@ module Docs
class ReactNative
class CleanHtmlFilter < Filter
def call
- @doc = at_css('.post')
+ @doc = at_css('main .col .markdown')
if root_page?
at_css('h1').content = 'React Native Documentation'
css('h1 ~ *').remove
end
+ css('header').each do |node|
+ node.before(node.children).remove
+ end
+
+ css('.content-banner-img').remove
+ css('.anchor').remove_attribute('class')
+ css('button[aria-label="Copy code to clipboard"]').remove
+ css('h2#example').remove
+
+ css('pre').each do |node|
+ node.content = node.css('.token-line').map(&:content).join("\n")
+ node.remove_attribute('class')
+ node['data-language'] = 'jsx'
+ end
+
+ #
+
css('.docs-prevnext', '.hash-link', '.edit-page-link', '.edit-github', 'a.hash', '.edit-page-block', 'a.show', 'a.hide', 'hr').remove
css('table h1', 'table h2', 'table h3').each do |node|
@@ -21,23 +38,10 @@ module Docs
node.parent['id'] ||= node['name'] || node['id']
end
- css('.highlight').each do |node|
- node.name = 'pre'
- node.css('.gutter').remove
- node['data-language'] = node.at_css('[data-lang]').try(:[], 'data-lang') || 'js'
- node.content = node.content.strip
- end
-
css('table.highlighttable').each do |node|
node.replace(node.at_css('pre.highlight'))
end
- css('.prism').each do |node|
- node.name = 'pre'
- node['data-language'] = node['class'][/(?<=language\-)(\w+)/]
- node.content = node.content
- end
-
css('pre > code.hljs').each do |node|
node.parent['data-language'] = 'jsx'
node.before(node.children).remove
diff --git a/lib/docs/filters/react_native/entries.rb b/lib/docs/filters/react_native/entries.rb
index 71a55ece..a3a9c793 100644
--- a/lib/docs/filters/react_native/entries.rb
+++ b/lib/docs/filters/react_native/entries.rb
@@ -1,33 +1,25 @@
module Docs
class ReactNative
class EntriesFilter < Docs::EntriesFilter
- REPLACE_TYPES = {
- 'The Basics' => 'Getting Started',
- 'apis' => 'APIs',
- 'components' => 'Components'
- }
-
def get_name
at_css('h1').children.select(&:text?).map(&:content).join.strip
end
def get_type
- link = at_css('.navListItemActive')
- return 'Miscellaneous' unless link
- section = link.ancestors('.navGroup').first
- type = section.at_css('h3').content.strip
- type = REPLACE_TYPES[type] || type
- type += ": #{name}" if type == 'Components'
- type
+ type = at_css('.navbar__link--active')
+ return 'Miscellaneous' unless type
+ type.content.strip
end
def additional_entries
- css('.mainContainer h3').each_with_object [] do |node, entries|
- subname = node.text
+ css('main .col .markdown h3').each_with_object [] do |node, entries|
+ code = node.at_css('code')
+ next unless code
+ subname = code.text
next if subname.blank? || node.css('code').empty?
sep = subname.include?('()') ? '.' : '#'
subname.prepend(name + sep)
- id = node.at_css('.anchor')['id']
+ id = node['id']
entries << [subname, id]
end
end
diff --git a/lib/docs/scrapers/react_native.rb b/lib/docs/scrapers/react_native.rb
index d00e55c2..39249b4e 100644
--- a/lib/docs/scrapers/react_native.rb
+++ b/lib/docs/scrapers/react_native.rb
@@ -1,19 +1,19 @@
module Docs
class ReactNative < UrlScraper
+ self.name = 'React Native'
self.slug = 'react_native'
self.type = 'react_native'
- self.release = '0.56'
- self.base_url = 'https://facebook.github.io/react-native/docs/'
+ self.release = '0.66'
+ self.base_url = 'https://reactnative.dev/docs/'
self.root_path = 'getting-started.html'
self.links = {
- home: 'https://facebook.github.io/react-native/',
+ home: 'https://reactnative.dev/',
code: 'https://github.com/facebook/react-native'
}
html_filters.push 'react_native/entries', 'react_native/clean_html'
- options[:container] = '.docMainWrapper'
- options[:skip_patterns] = [/\Asample\-/]
+ options[:skip_patterns] = [/\Asample\-/, /\A0\./, /\Anext\b/]
options[:skip] = %w(
videos.html
transforms.html
@@ -26,8 +26,9 @@ module Docs
url
}
+ # https://github.com/facebook/react-native-website/blob/main/LICENSE-docs
options[:attribution] = <<-HTML
- © 2015–2018 Facebook Inc.
+ © 2022 Facebook Inc.
Licensed under the Creative Commons Attribution 4.0 International Public License.
HTML
diff --git a/public/icons/docs/react_native/SOURCE b/public/icons/docs/react_native/SOURCE
index c1d5f7fb..65f9e914 100644
--- a/public/icons/docs/react_native/SOURCE
+++ b/public/icons/docs/react_native/SOURCE
@@ -1 +1 @@
-https://github.com/facebook/react-native/blob/gh-pages/img/favicon.png
+https://github.com/facebook/react-native-website/blob/main/website/static/docs/assets/favicon.png