jade
Version:
Jade template engine
133 lines (105 loc) • 2.17 kB
JavaScript
/*!
* Stylus
* Copyright(c) 2010 LearnBoost <dev@learnboost.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Renderer = require('./renderer')
, nodes = require('./nodes')
, utils = require('./utils');
/**
* Export render as the module.
*/
exports = module.exports = render;
/**
* Library version.
*/
exports.version = '0.9.2';
/**
* Expose nodes.
*/
exports.nodes = nodes;
/**
* Expose BIFs.
*/
exports.functions = require('./functions');
/**
* Expose utils.
*/
exports.utils = require('./utils');
/**
* Expose middleware.
*/
exports.middleware = require('./middleware');
/**
* Expose constructors.
*/
exports.Parser = require('./parser');
exports.Evaluator = require('./visitor/evaluator');
/**
* Convert the given `css` to `stylus` source.
*
* @param {String} css
* @return {String}
* @api public
*/
exports.convertCSS = require('./convert/css');
/**
* Parse the given `str` with `options` and return the AST.
*
* Examples:
*
* css.parse(str);
* // raw ast comprised of nodes
*
* css.parse(str).toObject();
* // plain object representation
*
* css.parse(str).toJSON();
* // JSON representation
*
* @param {String} str
* @param {Object} options
* @return {Object}
* @api public
*/
exports.parse = function(str, options){
var renderer = new Renderer(str, options);
try {
return renderer.parser.parse();
} catch (err) {
throw utils.formatException(
renderer
, err
, options);
}
};
/**
* Render the given `str` with `options` and callback `fn(err, css)`.
*
* @param {String} str
* @param {Object|Function} options
* @param {Function} fn
* @api public
*/
exports.render = function(str, options, fn){
if ('function' == typeof options) fn = options, options = {};
new Renderer(str, options).render(fn);
};
/**
* Return a new `Renderer` for the given `str` and `options`.
*
* @param {String} str
* @param {Object} options
* @return {Renderer}
* @api public
*/
function render(str, options) {
return new Renderer(str, options);
}
/**
* Expose optional functions.
*/
exports.url = require('./functions/url');