You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.3 KiB
68 lines
1.3 KiB
/*! |
|
* nib |
|
* Copyright (c) 2010 TJ Holowaychuk <tj@vision-media.ca> |
|
* 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); |
|
} |
|
}; |
|
}
|
|
|