Latest commit 06399b8 Jan 18, 2017 @keyanzhang keyanzhang committed with gaearon Add "Handling Multiple Inputs" to Forms doc (#8552)
* added "Handling Multiple Inputs"

* renamed and added a codepen

* simplified the example
Failed to load latest commit information.
_css Proper font-family for docs input fields (#7706) (#7708) Sep 12, 2016
_data Add a document on higher-order components (#7869) Nov 29, 2016
_includes include the version number in the header (#8315) Nov 17, 2016
_js Remove unnecessary findDOMNode calls (#8198) Nov 8, 2016
_layouts Fixed stray text appearing on top of the navbar at small screen sizes ( Jan 4, 2017
_plugins New Documentation Oct 21, 2016
_posts Fix typos (#8632) Jan 4, 2017
blog [docs] Don't make authors links on all posts page Oct 15, 2015
community Added React London conference, March 28th (#8722) Jan 9, 2017
contributing Add Flow reminder to PR template (#8805) Jan 17, 2017
css added word break (#8120) Oct 27, 2016
docs Add "Handling Multiple Inputs" to Forms doc (#8552) Jan 18, 2017
downloads Update website for 15.4.0 Nov 16, 2016
img Add 15.4.0 blog post Nov 16, 2016
js Revert "Stop relying on variable hoisting" (#8381) Nov 22, 2016
tutorial I -> we (#8817) Jan 17, 2017
warnings fix typo 'miss-configured' to 'misconfigured' (#8412) Nov 24, 2016 Finish Jekyll 3 Upgrade Jul 19, 2016
Gemfile Upgrade to Jekyll 3 Jul 19, 2016
Gemfile.lock Finish Jekyll 3 Upgrade Jul 19, 2016 New Documentation Oct 21, 2016
Rakefile Update the homepage with ES6 (#7868) Oct 4, 2016
_config.yml Update website for 15.4.0 Nov 16, 2016 Finish Jekyll 3 Upgrade Jul 19, 2016
favicon.ico Initial public release May 29, 2013
feed.xml Finish Jekyll 3 Upgrade Jul 19, 2016
html-jsx.html [docs] Use existing layout for redirecting html-jsx (#6904) May 27, 2016 New Documentation Oct 21, 2016 Finish Jekyll 3 Upgrade Jul 19, 2016

React Documentation & Website

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


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


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


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.



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.