我建立一个小节点的应用程序,并使用快递与玉和手写笔来呈现一些基本的HTML页面。
我很好奇,如果有适合我的方式来传递成从节点生成的.styl文件中的一些变量? 我很清楚,我可以定义.styl文件的内部变量,但我有一个需要更有活力。 具体来说,我一直在寻找一种简单的方法来存储在数据库中的一些颜色,有节点抓住这些值,那么这样当页面呈现这些变量传入插入那些到.styl文件。看起来这应该做的-able,但我缺乏对细节我。 任何帮助表示赞赏。 谢谢!
我建立一个小节点的应用程序,并使用快递与玉和手写笔来呈现一些基本的HTML页面。
我很好奇,如果有适合我的方式来传递成从节点生成的.styl文件中的一些变量? 我很清楚,我可以定义.styl文件的内部变量,但我有一个需要更有活力。 具体来说,我一直在寻找一种简单的方法来存储在数据库中的一些颜色,有节点抓住这些值,那么这样当页面呈现这些变量传入插入那些到.styl文件。看起来这应该做的-able,但我缺乏对细节我。 任何帮助表示赞赏。 谢谢!
由于@ebohlman他的建议是接近我最终落实。
基本上我试图找出如何做到这一点的连接中间件的顶部,这里是我想出了:
做app.configure当我使用的自定义编译编译功能(键“编译”)像这样:
app.use(require('stylus')
.middleware({
src: app.root + '/app/public',
compile: compile
})
);
然后,我创建了几个功能:
var stylus = require('stylus');
var mylib = function(style){
style.define('themeColor1', function(){
//call to the db that returns a color
color = 'blue';
color = color ? color : 'orange';
return new stylus.nodes.Literal(color);
});
};
var compile = function(str, path) {
return stylus(str)
.use(mylib);
};
那么.styl文件里我做的:
background-color themeColor1();
在themeColor1功能三元运算符允许容易默认值和一个覆盖。 我花了一点要弄清楚基于实例的API,但它看起来这可能是一个解决别人想知道该怎么办。 如果任何人有这种做法的任何挫折,请让我知道。
您可以使用手写笔API的定义()函数来设置手写笔的变量,并提供给它JS功能。