Summary:
The showcase is displayed in the homepage as well as in a standalone showcase page. The source data for these two pages is embedded in each page, resulting in repetition of data across both.
This PR splits out all of the showcase data to its own file, which is then loaded into the Metadata component during website generation.
`cd website && npm start`, then verified index and showcase loaded successfully
`cd website && node server/generate.js`, confirmed script runs successfully
Closes https://github.com/facebook/react-native/pull/12626
Differential Revision: D4632036
Pulled By: hramos
fbshipit-source-id: 2d1ad890e78e457205179e36c3ef04ffec354ad9
Summary:
Addresses an issue introduced in 6a8200df95. While that commit successfully avoids extracting the docs while developing locally, it neglected to handle the case when the site was being built for deployment. As a result this broke CI.
Options are now optional as they should be, and the site generation script will ensure docs are built during deployment.
Closes https://github.com/facebook/react-native/pull/12267
Differential Revision: D4523906
Pulled By: lacker
fbshipit-source-id: ee00d5653eb98b16b94734299bb15ba5473a0f61
Summary:
This only affects the website when it is hosted locally using express. The current version of the website is annoyingly sluggish, as the whole docs structure is parsed on each request.
In this PR, we store the result of extracting the Markdown sources in memory, significantly speeding up page loads. We also delay the extraction of docs until a request is made that would require them (e.g. anything that hits `/react-native/docs/*`).
There is still a 8 second delay when the docs are first visited, as expected. This can be improved in a later PR.
Any changes to the docs structure may require a server restart to take effect. This is rare enough that I don't think it is a blocker. This PR significantly speeds up first page load times on the homepage and any non-docs site, and speeds up subsequent page loads on Docs. This will make for a better web development experience.
Extracting the docs on each request takes around 8 seconds. Storing these in memory allows us to virtuall
Closes https://github.com/facebook/react-native/pull/12203
Differential Revision: D4516697
Pulled By: hramos
fbshipit-source-id: 05276e9827c82e38ccf064209b3fd38005f8e247
Summary:
The goal of this PR is to place greater emphasis on the blog as a destination.
The dark Hero from the landing page is now present in the blog as well, and the content is front and center.
The sidebar has been removed. It is not necessary to show a list of recent blog posts in the sidebar when the blog landing page shows the same number of posts along with short excerpts.
The prev/next links have swapped positions, and will now display "Older posts" and "Newer posts".
The excerpts have been stripped of formatting and they are now consistent across the blog landing page and the OpenGraph metatags. Fixes#10597.
A signup form for the new React Native newsletter has been added to the footer.
Newsletter signup form in footer:
![screencapture-localhost-8079-react-native-1477944030909](https://cloud.githubusercontent.com/assets/165856/19869614/4bb035aa-9f6a-11e6-9b8e-e0333417f423.png)
Blog landing page:
![screencapture-localhost-8079-r
Closes https://github.com/facebook/react-native/pull/10660
Differential Revision: D4117034
Pulled By: bestander
fbshipit-source-id: 215f966008fdf5c8870ed28d92384034a0d23c39
Summary:
An Atom feed is now generated as part of the build script. This is done statically and not as a React view because React is not the right tool for generating XML documents.
Some additional metadata is stored in `metadata-blog.js` and duplicated to `metadata-blog.json` in the `server/` directory to aid in the generation of the feed. Let me know if there's a better way to import this data using the existing Haste module that wouldn't require writing an additional JSON file.
The feed will be available at https://facebook.github.io/react-native/blog.xml
A sample output of the Atom feed is included at the bottom. It is a [valid Atom 1.0 feed](https://validator.w3.org/feed/check.cgi), with some additional recommendations that can be ignored for now.
> Congratulations!
>
> [Valid Atom 1.0] This is a valid Atom 1.0 feed.
> Recommendations
>
> This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.
> line 2, col
Closes https://github.com/facebook/react-native/pull/10611
Differential Revision: D4097381
Pulled By: mkonicek
fbshipit-source-id: 8d2e18923358d1903b2715b00c48680b0c4dff68
Summary:This puts the images inside of the blog folder in the output so we can safely copy them over. And moves the images in /blog/img/ in the source control so it's easier to discover (instead of having to search many levels deep).
Should make the website work!
Closes https://github.com/facebook/react-native/pull/6659
Differential Revision: D3098308
Pulled By: vjeux
fb-gh-sync-id: 99477e27843dd6c88aa854028944f2f0b672db1f
fbshipit-source-id: 99477e27843dd6c88aa854028944f2f0b672db1f