You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
chocolateboy edf4b2231f [Docs] Fix confusing description for the <script>...</script> usage (#9502) 8 years ago
_css fix misspellings in comments and tests (#8946) 8 years ago
_data Add link to 'Typechecking with PropTypes' under 'Advanced Guides' (#9472) 8 years ago
_includes include the version number in the header (#8315) 8 years ago
_js Remove ref usage in main markdown example (#9160) 8 years ago
_layouts Replace the header_links plugin with client-side generated anchors. (#4165) 8 years ago
_plugins Replace the header_links plugin with client-side generated anchors. (#4165) 8 years ago
_posts Use caret range in blog instructions 8 years ago
blog [docs] Don't make authors links on all posts page 9 years ago
community Sort out conferences by date (#9172) 8 years ago
contributing Describe fixtures dir in the codebase overview (#9516) 8 years ago
css Replace the header_links plugin with client-side generated anchors. (#4165) 8 years ago
docs [Docs] Fix confusing description for the <script>...</script> usage (#9502) 8 years ago
downloads Revert "update react perf docs (#8060) and (#6174)" (#8997) 8 years ago
img Update Lifting State Up not to mix up DOM value with component state (#9032) 8 years ago
js Revert "Stop relying on variable hoisting" (#8381) 8 years ago
tutorial Reorganize the "following along" instructions (#9453) 8 years ago
warnings Fix the proptypes deprecation warning url on the "Don't Call PropTypes Warning" doc page (#9419) 8 years ago
404.md Finish Jekyll 3 Upgrade 8 years ago
Gemfile Upgrade to Jekyll 3 8 years ago
Gemfile.lock Finish Jekyll 3 Upgrade 8 years ago
README.md New Documentation 8 years ago
Rakefile Delete addons (#9209) 8 years ago
_config.yml Update website for 15.4.0 8 years ago
acknowledgements.md Finish Jekyll 3 Upgrade 8 years ago
circle.yml Don't build gh-pages branch on CircleCI (#9442) 8 years ago
favicon.ico Initial public release 12 years ago
feed.xml Finish Jekyll 3 Upgrade 8 years ago
html-jsx.html [docs] Use existing layout for redirecting html-jsx (#6904) 9 years ago
index.md New Documentation 8 years ago
jsx-compiler.md Finish Jekyll 3 Upgrade 8 years ago

README.md

React Documentation & Website

We use Jekyll to build the site using (mostly) Markdown, and we host it by pushing HTML to GitHub Pages.

Installation

If you are working on the site, you will want to install and run a local copy of it.

Dependencies

In order to use Jekyll, you will need to have Ruby installed. macOS comes pre-installed with Ruby, but you may need to update RubyGems (via gem update --system). Otherwise, RVM and rbenv are popular ways to install Ruby.

The version of the Pygment syntax highlighter used by Jekyll requires Python 2.7.x (not 3.x). macOS comes pre-installed with Python 2.7, but you may need to install it on other OSs.

Once you have RubyGems and installed Bundler (via gem install bundler), use it to install the dependencies:

$ cd react/docs
$ bundle install # Might need sudo.
$ npm install

Instructions

The site requires React, so first make sure you've built the project (via grunt).

Use Jekyll to serve the website locally (by default, at http://localhost:4000):

$ cd react/docs
$ bundle exec rake
$ bundle exec rake fetch_remotes
$ bundle exec jekyll serve -w
$ open http://localhost:4000/react/index.html

We use SASS (with Bourbon) for our CSS, and we use JSX to transform some of our JS. If you only want to modify the HTML or Markdown, you do not have to do anything because we package pre-compiled copies of the CSS and JS. If you want to modify the CSS or JS, use Rake to compile them:

$ cd react/docs
$ bundle exec rake watch # Automatically compiles as needed.
# bundle exec rake         Manually compile CSS and JS.
# bundle exec rake js      Manually compile JS, only.

Afterthoughts

Updating facebook.github.io/react

The easiest way to do this is to have a separate clone of this repository, checked out to the gh-pages branch. We have a build step that expects this to be in a directory named react-gh-pages at the same depth as react. Then it's just a matter of running grunt docs, which will compile the site and copy it out to this repository. From there, you can check it in.

Note: This should only be done for new releases. You should create a tag corresponding to the release tag in the main repository.

We also have a rake task that does the same thing (without creating commits). It expects the directory structure mentioned above.

$ bundle exec rake release

Removing the Jekyll / Ruby Dependency

In an ideal world, we would not be adding a Ruby dependency on part of our project. We would like to move towards a point where we are using React to render the website.