NOTE: This project includes some custom python scripting for generating parts of the design document from regular documents within the
_docs directory. This readme includes special instructions for making sure this happens.
- Install this couchapp
a. Get a couch from CouchOne or Cloudant or set up CouchDB on your desktop or server
pip install couchappor
easy_install couchappc. Clone this repo d. Create a .couchapprc in the root directory of this repo e. run
- Edit the documents (the design document and the documents under _docs) and run
couchapp pushto update them.
python fulfillment.pyto update documents that are automatically processed or are generated from other documents. Then, push again. Some changes, especially changing the script renderer, require running
python fulfillment.pymore than once.
- implement separate page view and data view
- add Showdown
- add dustjs
- add google caja
- add rewrites
- add markdown doc
- make renderer use specified template and markdown body
- use lib for modules instead of edocs
- get a proper build system going
I avoid yammering about my uber-clever plans before I attempt them, but I have other todos. If you're curious, find me online. I may tell you some of them. :)
DocEnv builds an environment around a document. There are also app
environments. They contain the data, along with other objects. The
document data would be at
doc.data where doc is the DocEnv. The
data might be wrapped at some point for easy traversal, and if it
is, the original data might be at
doc.raw. It might be cleared
out if it gets invalidated and have to be regenerated.
The other types of objects might include edocs (a mechanism for updating embedded documents), page, site, script, and template.
There will also be circular links to the design doc's AppEnv and
the DocEnv of the current doc. The AppEnv will also contain
references to other docs under
app.docs, and the DocEnv of other
docs, that aren't current, will contain links to the AppEnv.
My intent is for the AppEnv to be the entry point most of the time.
A DocEnv should be created by the AppEnv. Perhaps an AppEnv should have a prototype for creating DocEnvs.
Some annotations, like those in Activity Streams format, could be built in. Others could be added later. Perhaps the ones added later would need to be specified in a metadata property for every document it's added to.
Copyright (c) 2011 Ben Atkin. Licensed under the terms of the MIT license.