bartaz/impress.js — pull request #76 by medikoo (2012-01-25 12:44:28+00:00)
Title: Expose 'impress' namespace and steps configuration objects

Summary:

* Expose `impress` object on `window` (with just `init` function and `steps` configuration)
* Renamed internal` impress` variable into `impressEl` (as `impress` is now same as `window.impress`)
* Initialize slideshow with `impress.init` function - it allows to adjust configuration programmatically after loading impress.js but before running `impress.init`
* Expose steps configuration with `impress.steps` object, it's not exactly as internal `steps` array, it's hash object where steps are mapped by its ids. Objects held by internal `steps` array and exposed `impress.steps` hash are same objects
* Simplify internal step object API so it's more user friendly
* `step.translate` properties are now direct properties on step object
* `step.rotate` object may be just a number which then internally would be used for rotation over z axis
* Bulletproof validation of `step` object during initialization and operation on slides (it's needed as objects are now exposed)

Let me know if it makes sense.
When I built my last presentation I found convient to configure slides positioning separately from html file, it's just easier when you have large number of slides, and want to move them around. See: https://github.com/medikoo/impress.js/blob/medikoo-asynchronous-javascript/js/default.js (this branch have this one merged)

It would also make impress kind of pluggable. I've seen requests for some kind of automatic algorithm which can be used to position slides automatically, now it can neatly be incorporated by users if they want it.
You may then list in your documentation such auto positioning external plugins :)