simple pushstate based client routing
npm install hermes-conrad> Sweet three-toed sloth of the ice planet Hoth!
Hermes is Backbone inspired client router for pushstate clients. Hermes was built
to support hybrid web applications.
* Hermes is a simple object - I don't need no stinking constructors
* Hermes uses Backbone style route definitions
* Hermes always triggers a handler if a route is matched unless told otherwise - no more passing trigger for every single navigate
* Hermes accepts a state object
* Hermes sets the document title if one is passed when navigating and updates the title on popstate
* Hermes will optionally store references state objects in an internal cache (always stored in the history object)
* Hermes does not require Backbone, but will trigger Backbone events if a reference to Backbone is passed as an option on start
When a route handler is called it is passed three arguments:
* pathname
* parameters object (contains named path parameters and the values from window.location.search [given precedence over path parameters])
* state object
``javascript
hermes.start({
routeOnHashChange: true, // execute matched route when hash changes; defaults to false
routes: {}, // routes table
title: '', // title for current page
state: {}, // state object for the current page
cache: false, // keep cache of state objects in addition to those stored in the history (stores page title regardless)
routeNotMatched: function (routePathName) {
// do something if a route is not matched, e.g., render 404 page
}
}
});
`
`javascript``
hermes.navigate(url, {
title: '', // page title to associate to url
state: {}, // state object to associate to url
trigger: true // execute route handler; default is true
});