complete redesign: use nodejs on server instead of php - documentation to be updated
This commit is contained in:
37
nodejs/node_modules/stylus/lib/functions/s.js
generated
vendored
Normal file
37
nodejs/node_modules/stylus/lib/functions/s.js
generated
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
var utils = require('../utils')
|
||||
, nodes = require('../nodes')
|
||||
, Compiler = require('../visitor/compiler');
|
||||
|
||||
/**
|
||||
* Return a `Literal` with the given `fmt`, and
|
||||
* variable number of arguments.
|
||||
*
|
||||
* @param {String} fmt
|
||||
* @param {Node} ...
|
||||
* @return {Literal}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
(module.exports = function s(fmt){
|
||||
fmt = utils.unwrap(fmt).nodes[0];
|
||||
utils.assertString(fmt);
|
||||
var self = this
|
||||
, str = fmt.string
|
||||
, args = arguments
|
||||
, i = 1;
|
||||
|
||||
// format
|
||||
str = str.replace(/%(s|d)/g, function(_, specifier){
|
||||
var arg = args[i++] || nodes.null;
|
||||
switch (specifier) {
|
||||
case 's':
|
||||
return new Compiler(arg, self.options).compile();
|
||||
case 'd':
|
||||
arg = utils.unwrap(arg).first;
|
||||
if ('unit' != arg.nodeName) throw new Error('%d requires a unit');
|
||||
return arg.val;
|
||||
}
|
||||
});
|
||||
|
||||
return new nodes.Literal(str);
|
||||
}).raw = true;
|
Reference in New Issue
Block a user