When I first read these docs, it was not immediately clear to me that I could
use `React.addons.CSSTransitionGroup` to animate a single item coming into view,
or an item replacing an item already there. This was partly due to the example
which rendered a list of items.
This PR adds a blurb about being able to use
`React.addons.CSSTransitionGroup` with one or zero items, provides a code
example, and adds a note blockquote that a `key` attribute must always be
provided on each child of `React.addons.CSSTransitionGroup`. The latter point
was not immediately obvious from the original `TodoList` code example, since it
renders a list which would normally require `key` attributes anyway.
Test Plan:
- Refreshed `http://localhost:4000/react/docs/animation.html`, saw that the
docs additions rendered correctly.
- Example code not tested (it was extracted from working code).
(cherry picked from commit 721f397303)
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.
Mac OS X 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.
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 # Might need sudo.
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
$ rake
$ jekyll serve -w
$ open http://localhost:4000/react/
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
$ rake watch # Automatically compiles as needed.
# rake Manually compile CSS and JS.
# rake css Manually compile CSS, only.
# 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.
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.