2012-09-05 19 views
5

मैं वेब पेज स्क्रैच फ़ाइलों की निर्देशिका बनाने में सक्षम होना चाहता हूं, जहां प्रत्येक फ़ाइल स्वयं निहित पृष्ठ है।क्या जेड फ़ाइल में एम्बेडेड इनलाइन स्टाइलस कोड के साथ स्टाइलस प्लगइन्स का उपयोग करना संभव है?

यह नियमित HTML/CSS/जे एस के साथ बहुत आसान है:

<head> 
    <style> 
     p { 
      color: red; 
     } 
    </style> 
</head> 
<body> 
    <p>lololol</p> 
</body> 

और यह जेड/स्टाइलस/CoffeeScript के साथ इसी तरह आसान है:

head 
    :stylus 
     p 
      color red 
body 
    p lololol 

बात है, वहाँ के लिए कोई स्पष्ट रास्ता है है इस तरह स्टाइलस प्लगइन्स का उपयोग करें। विशेष रूप से, मैं और अधिक प्रभावी ढंग रंगों के साथ प्रयोग करने के लिए उपयोग करने के लिए colorspaces.js और निब चाहते हैं:

head 
    :stylus 
     @import 'nib' 
     p 
      color CIELCH(20.470, 74.265, 314.113) 
      background-color linear-gradient(white, black) 
body 
    p lololol 

वैकल्पिक हल मैं वर्तमान में उपयोग कर रहा हूँ


आप जेड कांटा कर सकते हैं these lines बदलकर इस तरह:

/** 
    * Transform stylus to css, wrapped in style tags. 
    */ 

    stylus: function(str, options){ 
+ colorspaces = require('colorspaces'); 
+ nib = require('nib'); 
    var ret; 
    str = str.replace(/\\n/g, '\n'); 
    var stylus = require('stylus'); 
- stylus(str, options).render(function(err, css){ 
+ stylus(str, options).use(colorspaces()).use(nib()).render(function(err, css){ 
     if (err) throw err; 
     ret = css.replace(/\n/g, '\\n'); 
    }); 
    return '<style type="text/css">' + ret + '</style>'; 
    }, 

और यदि आप जेड की निर्भरताओं को रोकना (मुझे npm install commander और npm install mkdirp) था, आप /jade_fork/bin/ पर नेविगेट कर सकते हैं और ./jade name_of_file.jade कर सकते हैं।


लेकिन मैं रखरखाव के कारण जेड की मुख्य शाखा में रहना पसंद करूंगा।

उत्तर

1

अद्यतन:

जैसे के रूप में सहेजें:

यहाँ का सबसे अच्छा तरीका मैंने पाया है ~/bin/jade:

#!/usr/bin/env node 

var jade = require('jade'); 

jade.filters.stylus = // your code from above 

require('jade/bin/jade'); 

यह /usr/local/bin/jade के रूप में वास्तव में काम करेंगे को छोड़कर यह आपके कोड लेखनी संकलन के लिए, निब आदि के साथ


पुराना जवाब का उपयोग करेगा:

मैं तुम क्या सुझाव है यह इस तरह है:

var jade = require('jade'); 

jade.filters.stylus = // your code from above 

jade.compile(/* ... */); 

आप जेड कमांड लाइन स्क्रिप्ट पर हार जाते हैं, लेकिन जेड मास्टर के आधार पर, आप अपनी फाइलों को इस तरह से संकलित करने में सक्षम होना चाहिए।

+0

धन्यवाद, यह (नया उत्तर) बहुत अच्छा काम करता है! –