2013-04-29 12:16:25 +08:00
|
|
|
# IPython Notebook development
|
|
|
|
|
2013-05-16 04:53:22 +08:00
|
|
|
## Development dependencies
|
2013-04-29 12:16:25 +08:00
|
|
|
|
|
|
|
Developers of the IPython Notebook will need to install the following tools:
|
|
|
|
|
2014-10-16 07:37:27 +08:00
|
|
|
* invoke
|
2013-04-29 12:16:25 +08:00
|
|
|
* node.js
|
|
|
|
* less (`npm install -g less`)
|
|
|
|
|
2013-05-16 04:53:22 +08:00
|
|
|
## Components
|
2013-04-29 12:16:25 +08:00
|
|
|
|
|
|
|
We are moving to a model where our JavaScript dependencies are managed using
|
|
|
|
[bower](http://bower.io/). These packages are installed in `static/components`
|
2014-07-29 21:41:20 +08:00
|
|
|
and committed into a separate git repo [ipython/ipython-components](ipython/ipython-components).
|
|
|
|
Our dependencies are described in the file
|
2014-10-16 07:37:27 +08:00
|
|
|
`static/components/bower.json`. To update our bower packages, run `bower install`
|
2014-03-01 11:59:54 +08:00
|
|
|
in this directory.
|
2013-04-29 12:16:25 +08:00
|
|
|
|
2013-05-16 04:53:22 +08:00
|
|
|
## less
|
2013-04-29 12:16:25 +08:00
|
|
|
|
|
|
|
If you edit our `.less` files you will need to run the less compiler to build
|
2014-10-16 07:37:27 +08:00
|
|
|
our minified css files. This can be done by running `python setup.py css` from the root of the repository.
|
2014-07-29 21:41:20 +08:00
|
|
|
If you are working frequently with `.less` files please consider installing git hooks that
|
|
|
|
rebuild the css files and corresponding maps in `${RepoRoot}/git-hooks/install-hooks.sh`.
|
2013-04-29 12:16:25 +08:00
|
|
|
|
2013-05-16 04:53:22 +08:00
|
|
|
## JavaScript Documentation
|
|
|
|
|
|
|
|
|
|
|
|
How to Build/ view the doc for JavaScript. JavaScript documentation should follow a
|
|
|
|
style close to JSDoc one, so you should be able to build them with your favorite
|
|
|
|
documentation builder. Still the documentation comment are mainly written to be read
|
|
|
|
with YUI doc. You can either build a static version, or start a YUIdoc server that
|
|
|
|
will live update the doc at every page request.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
To do so, you will need to install YUIdoc.
|
|
|
|
|
|
|
|
### Install NodeJS
|
|
|
|
|
|
|
|
Node is a browser less javascript interpreter. To install it please refer to
|
|
|
|
the documentation for your platform. Install also NPM (node package manager) if
|
|
|
|
it does not come bundled with it.
|
|
|
|
|
|
|
|
### Get YUIdoc
|
|
|
|
|
|
|
|
npm does by default install package in `./node_modules` instead of doing a
|
|
|
|
system wide install. I'll leave you to yuidoc docs if you want to make a system
|
|
|
|
wide install.
|
|
|
|
|
|
|
|
First, cd into js directory :
|
|
|
|
```bash
|
2013-06-20 22:54:02 +08:00
|
|
|
cd IPython/html/static/js/
|
2013-05-16 04:53:22 +08:00
|
|
|
# install yuidoc
|
|
|
|
npm install yuidocjs
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Run YUIdoc server
|
|
|
|
|
2013-06-20 22:54:02 +08:00
|
|
|
From IPython/html/static/js/
|
2013-05-16 04:53:22 +08:00
|
|
|
```bash
|
|
|
|
# run yuidoc for install dir
|
|
|
|
./node_modules/yuidocjs/lib/cli.js --server .
|
|
|
|
```
|
|
|
|
|
|
|
|
Follow the instruction and the documentation should be available on localhost:3000
|
|
|
|
|
2013-06-17 14:02:20 +08:00
|
|
|
Omitting `--server` will build a static version in the `out` folder by default.
|