2012-09-05 5 views
5

Ich möchte in der Lage sein, ein Verzeichnis von Webseiten-Scratch-Dateien zu erstellen, wobei jede Datei eine in sich geschlossene Seite ist.Ist es möglich, Stylus-Plugins mit integriertem Stylus-Code in einer Jade-Datei zu verwenden?

Das ist ziemlich einfach, mit regelmäßigen HTML/CSS/JS:

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

Und es ist in ähnlicher Weise mit Jade/Stylus/Coffee einfach:

head 
    :stylus 
     p 
      color red 
body 
    p lololol 

Die Sache ist, gibt es keinen klaren Weg zu Verwenden Sie Stylus-Plugins auf diese Weise. Insbesondere würde Ich magcolorspaces.js und Feder verwenden, mit Farben zu experimentieren effektiver:

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

Die Abhilfe, die ich zur Zeit bin mit


Sie können Jade Gabel von these lines Wechsel so:

/** 
    * 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>'; 
    }, 

Und wenn Sie ich nstall Jades Abhängigkeiten (ich musste npm install commander und npm install mkdirp), können Sie zu /jade_fork/bin/ navigieren und ./jade name_of_file.jade tun.


Aber ich würde es vorziehen, auf dem Hauptzweig von Jade aus Wartungsgründen zu bleiben.

Antwort

1

Update:

Hier ist der beste Weg, die ich gefunden habe:

Speichern wie z.B. ~/bin/jade:

#!/usr/bin/env node 

var jade = require('jade'); 

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

require('jade/bin/jade'); 

Es funktioniert genau so, wie /usr/local/bin/jade, außer es den Code für die Erstellung Stift, mit Feder usw.


Alte Antwort benutzen:

ich Sie tun vorschlagen es ist wie folgt:

var jade = require('jade'); 

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

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

Sie verlieren das Jade-Befehlszeilenskript, aber Sie sollten in der Lage sein, Ihre Dateien auf diese Weise zu kompilieren, abhängig vom Jade-Master.

+0

Danke, das (die neue Antwort) funktioniert super! –