Javascript 手写笔:生成CamelCase变量
希望在新生成的手写笔变量中生成camelCase占位符(后续问题):Javascript 手写笔:生成CamelCase变量,javascript,css,stylus,Javascript,Css,Stylus,希望在新生成的手写笔变量中生成camelCase占位符(后续问题): smallMarginTop normalMarginTop 等等 如何实现这一点,无论是使用Javascript API还是在手写笔中本机实现?手写笔中没有大写的函数,但您可以使用JS API和内置函数轻松添加它。例如: 到大写.js module.exports = function() { return function(stylus) { stylus.define('to-upper-case', f
smallMarginTop
normalMarginTop
如何实现这一点,无论是使用Javascript API还是在手写笔中本机实现?手写笔中没有大写的
函数,但您可以使用JS API和内置函数轻松添加它。例如:
到大写.js
module.exports = function() {
return function(stylus) {
stylus.define('to-upper-case', function(node) {
var nodeName = node.nodeName
, val = node.string;
if ('string' == nodeName) {
return new stylus.nodes.String(val.toUpperCase());
} else if ('ident' == nodeName) {
return new stylus.nodes.Ident(val.toUpperCase());
} else {
throw new Error('to-upper-case accepts string or ident but got "' + nodeName + '"');
}
});
};
};
测试.styl
use('to-upper-case.js')
properties = margin padding
proportions = mini small normal medium large
for property in properties
for proportion, i in proportions
define("$" + property + to-upper-case('' + substr(proportion, 0, 1)) + substr(proportion, 1), unit(i / 3, "em"))
不为我工作。手写笔只是在未定义变量时发出变量。使用与您提供的代码完全相同的代码,我获得的最大成功是$marginMini
,但仍然是0。你能提供一个有效的例子吗?也许是一个代码笔?这里有一个要点,我遇到了一个不同的问题:我在尝试用本机手写笔包装函数时收到错误消息“to upper case accepts string或Identit but get function”:您会收到这个错误,因为手写笔的内置函数只有一个字母(例如,s
和p
)。您应该使用连接将它们转换为字符串:转换为大写(“”+substr(string,0,1))+substr(string,1)
。或者,您可以修改插件代码以接受其工作的函数(return function.name.toUpperCase())。任何对该示例感兴趣的人都可以查看my new helpers.styl:
use('to-upper-case.js')
properties = margin padding
proportions = mini small normal medium large
for property in properties
for proportion, i in proportions
define("$" + property + to-upper-case('' + substr(proportion, 0, 1)) + substr(proportion, 1), unit(i / 3, "em"))