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:
|
|
|
|
|
|
|
|
* fabric
|
|
|
|
* node.js
|
|
|
|
* less (`npm install -g less`)
|
|
|
|
* bower (`npm install -g bower`)
|
|
|
|
|
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-02-12 03:18:23 +08:00
|
|
|
and committed into our git repo. Our dependencies are described in the file
|
2014-03-01 11:59:54 +08:00
|
|
|
`static/components/bower.json`. To update our bower packages, run `fab update`
|
|
|
|
in this directory.
|
2013-04-29 12:16:25 +08:00
|
|
|
|
|
|
|
Because CodeMirror does not use proper semantic versioning for its GitHub tags,
|
|
|
|
we maintain our own fork of CodeMirror that is used with bower. This fork should
|
|
|
|
track the upstream CodeMirror exactly; the only difference is that we are adding
|
|
|
|
semantic versioned tags to our repo.
|
|
|
|
|
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
|
|
|
|
our minified css files. This can be done by running `fab css` from this directory.
|
|
|
|
|
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.
|