0.4.2 • Published 12 years ago
viewbridge v0.4.2
Viewbridge
W.I.P. Create precompiled clientside templates from serverside templates.
Intention is to have one set of templates for both serverside and clientside usage. As opposed to having separate, yet overlapping templates on both the server and client.
Work in progress. Presently Jade only.
Installation
$ npm install viewbridgeInstall CLI tool globally
$ npm install -g viewbridgeAPI
viewbridge(options, callback)
options properties:
dir: Path to root of views/templates directory. Required.views: Views to compile templates functions for. Required.output: JS file to create.namespace: Clientside namespace. Default isviewbridge.templates
callback(err, info)
errAn if there was one. Otherwise null.infoproperties:file: The file created if theoutputoption was set.javascript: The generated JS as a string.
Example
Assume an Express app "myapp" with the following directory stucture. (Express not required; templates can be located anywhere).
-myapp/
-deploy/
-assets/
+js/
-src
app.js
+routes/
-public/
+images
+javascripts
+stylesheets
-views/
about.jade
index.jade
user.jade
+status/
-favorites/
favorite.jade
index.jade
stats.jadevar viewbridge = require('viewbridge');
var options = {
dir: '~/myapp/src/views'
, namespace: 'myapp.templates'
, output: '~/myapp/src/public/javascripts/templates.js'
, views: [
'user'
, 'favorites/index' // Must specify index
, 'favorites/stats'
]
};
viewbridge(options, function(err, info) {
// ...
});CLI
Usage: viewbridge [options]
Options:
-h, --help output usage information
-V, --version output the version number
-d, --dir <dir> directory of template files - required
-v, --views <view1,view2,..> templates to compile - required
-o, --output <output> output file path - required
-n, --namespace <namespace> clientside namespaceNotes
- Presently Jade only.
- block, extend, yield, include, etc. do not work clientside.
- Mixins do work.