首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >手写笔:生成CamelCase变量

手写笔:生成CamelCase变量
EN

Stack Overflow用户
提问于 2014-08-25 01:04:00
回答 1查看 466关注 0票数 2

希望在新生成的Stylus变量(后续问题对这一个)中生成camelCase占位符:

  • smallMarginTop
  • normalMarginTop

等。

代码语言:javascript
复制
properties = margin padding

proportions = mini small normal medium large

for property in properties
    for proportion, i in proportions // Generate basic proportion placeholders: ex. small-padding, medium-padding, etc.
        define("$" + property + proportion, unit(i / 3, "em")) // should give something like $marginSmall = ... -- thinking something like toUpperCase?

如何通过Javascript或在Stylus内部实现这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-25 13:27:05

Stylus中没有to-upper-case函数,但是您可以使用JS和使用内置函数轻松地添加它。例如:

to-upper-case.js

代码语言:javascript
复制
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 + '"');
      }
    });
  };
};

test.styl

代码语言:javascript
复制
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"))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25477795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档