Copyright 2013 NPR. All rights reserved. No part of these materials may be reproduced, modified, stored in a retrieval system, or retransmitted, in any form or by any means, electronic, mechanical or otherwise, without prior written permission from NPR.
(Want to use this code? Send an email to [email protected]!)
The project contains the following folders and important files:
data
-- Data files, such as those used to generate HTMLetc
-- Miscellaneous scripts and metadata for project bootstrapping.jst
-- Javascript (Underscore.js) templatesless
-- LESS files, will be compiled to CSS and concatenated for deploymenttemplates
-- HTML (Jinja2) templates, to be compiled locallywww
-- Static and compiled assets to be deployed (a.k.a. "the output")app.py
-- A Flask app for rendering the project locally.app_config.py
-- Global project configuration for scripts, deployment, etc.fabfile.py
-- Fabric commands automating setup and deployment
Node.js is required for the static asset pipeline. If you don't already have it, get it like this:
brew install node
curl https://npmjs.org/install.sh | sh
Then install the project requirements:
cd $NEW_PROJECT_NAME
npm install less universal-jst
mkvirtualenv $NEW_PROJECT_NAME
pip install -r requirements.txt
The source image and tiles are not stored in the repository. Please do not commit them. To cut the tiles:
- Download the source image from Dropbox and save it as
data/full.png
. - Run
python cut_tiles.py
A flask app is used to run the project locally. It will automatically recompile templates and assets on demand.
workon $NEW_PROJECT_NAME
python app.py
Visit localhost:8000
in your browser.
Compile LESS to CSS, compile javascript templates to Javascript and minify all assets:
workon $NEW_PROJECT_NAME
fab render
(This is done automatically whenever you deploy to S3.)
If you want to test the app once you've rendered it out, just use the Python webserver:
cd www
python -m SimpleHTTPServer
fab staging master deploy