我想创建一个在手写笔中包装另一个内置函数的函数。类似的东西:
myFunction(color, amount)
darken(color, amount)
我想为项目创建多个主题,并且有些主题是黑暗的,有些主题很轻,所以对于hover
我希望lighen()
background-color
和其他主题darken()
,并在所有主题中常用的文件中使用myFunction()
,仅更改每个主题中的函数定义。
我想知道的事情:有可能吗?或者如果在手写笔中有任何其他函数多态性机制,任何能够动态更改函数定义的方法。
我尝试了什么:
首先我试着简单地包装:
inHover (color, amount)
darken(color, amount)
但我得到了:
cmd.exe /D /C E:/node/nodist/bin/stylus.cmd definitions.styl
E:\node\nodist\bin\node_modules\stylus\bin\stylus:662
throw err;
^
RangeError: definitions.styl:20:10
16|
17| /* Functions */
18|
19| inHover (color, amount)
20| darken(color, amount)
----------------^
21|
Maximum call stack size exceeded
at darken() (E:/node/nodist/bin/node_modules/stylus/lib/functions/index.styl:128:21)
at "inHover (color" (definitions.styl:18:16)
at Evaluator.visit (E:\node\nodist\bin\node_modules\stylus\lib\visitor\evaluator.js:162:34)
at Evaluator.visitIdent (E:\node\nodist\bin\node_modules\stylus\lib\visitor\evaluator.js:533:23)
at Evaluator.Visitor.visit (E:\node\nodist\bin\node_modules\stylus\lib\visitor\index.js:28:40)
at Evaluator.visit (E:\node\nodist\bin\node_modules\stylus\lib\visitor\evaluator.js:156:18)
at Evaluator.visitExpression (E:\node\nodist\bin\node_modules\stylus\lib\visitor\evaluator.js:630:26)
at Evaluator.Visitor.visit (E:\node\nodist\bin\node_modules\stylus\lib\visitor\index.js:28:40)
at Evaluator.visit (E:\node\nodist\bin\node_modules\stylus\lib\visitor\evaluator.js:156:18)
at Evaluator.visitIdent (E:\node\nodist\bin\node_modules\stylus\lib\visitor\evaluator.js:533:23)
at Evaluator.Visitor.visit (E:\node\nodist\bin\node_modules\stylus\lib\visitor\index.js:28:40)
at Evaluator.visit (E:\node\nodist\bin\node_modules\stylus\lib\visitor\evaluator.js:156:18)
我不能使用块,因为它们不接受参数。
我的代码:
HTML code:
<html>
<head>
<link href='/css/themes/my_theme/index.css' rel='styleSheet'/>
<body ng-app='app'>
<!-- Body defination -->
</body>
</html>
/css/themes/my_theme/index.styl
档案:
@import 'definitions.styl'
@import '../../site.styl' /* All the common css styles*/
myFunction(color, amount)
darken(color, amount)
/css/themes/my_theme/definitions.styl
档案:
/* Color definitions */
colorPrimary = red
colorBackground = green
/* Functions */
inHover (color, amount)
darken(color, amount)
我使用的是什么:
答案 0 :(得分:1)
好吧,这段代码适合我(尝试删除函数定义中(
之前的空格):
inHover(color, amount)
darken(color, amount)
body
color: inHover(#c00, 10)
使用Stylus 0.52.4编译为:
body {
color: #900;
}