/*! * nib * Copyright (c) 2010 TJ Holowaychuk * MIT Licensed */ /** * Module dependencies. */ var stylus = require('stylus') , path = require('path') , nodes = stylus.nodes , utils = stylus.utils , Canvas exports = module.exports = plugin; // conditionally expose canvas-based APIs. try { Canvas = require('canvas'); var gradient = require('./nodes/gradient') , colorImage = require('./nodes/color-image') } catch (err) { // ignore } /** * Library version. */ exports.version = require(path.join(__dirname, '../package.json')).version; /** * Stylus path. */ exports.path = __dirname; /** * Return the plugin callback for stylus. * * @return {Function} * @api public */ function plugin() { return function(style){ style.include(__dirname); if (Canvas) { style.define('has-canvas', nodes.true); // gradients style.define('create-gradient-image', gradient.create) style.define('gradient-data-uri', gradient.dataURL) style.define('add-color-stop', gradient.addColorStop) // color images style.define('create-color-image', colorImage.create) style.define('color-data-uri', colorImage.dataURL); } else { style.define('has-canvas', nodes.false); } } }