एक और पूरी तरह से अलग दृष्टिकोण, एक फिल्टर बनाने के लिए होगा, जिसमें लिंक की जगह पर पहले छुरा होता है, और फिर जेड दूसरी के साथ प्रस्तुत होता है
h1 happy days
:inline
p this can have [a link](http://going-nowhere.com/) in it
प्रस्तुत करता है:
<h1>happy days</h1><p>this can have <a href='http://going-nowhere.com/'>a link</a> in it</p>
पूर्ण कार्य उदाहरण: index.js (नोडज के साथ रन)
var f, jade;
jade = require('jade');
jade.filters.inline = function(txt) {
// simple regex to match links, might be better as parser, but seems overkill
txt = txt.replace(/\[(.+?)\]\((.+?)\)/, "<a href='$2'>$1</a>");
return jade.compile(txt)();
};
jadestring = ""+ // p.s. I hate javascript's non-handling of multiline strings
"h1 happy days\n"+
":inline\n"+
" p this can have [a link](http://going-nowhere.com/) in it"
f = jade.compile(jadestring);
console.log(f());
एक अधिक सामान्य समाधान एक अद्वितीय ब्लॉक में जेड के मिनी उप-ब्लॉकों को प्रस्तुत करेगा (शायद कुछ इस तरह से पहचाना जाता है ${jade goes here}
), इसलिए ...
p some paragraph text where ${a(href="wherever.htm") the link} is embedded
इसे ठीक उसी तरह लागू किया जा सकता है, जैसा ऊपर बताया गया है।
सामान्य समाधान का कार्यशील उदाहरण:
var f, jade;
jade = require('jade');
jade.filters.inline = function(txt) {
txt = txt.replace(/\${(.+?)}/, function(a,b){
return jade.compile(b)();
});
return jade.compile(txt)();
};
jadestring = ""+ // p.s. I hate javascript's non-handling of multiline strings
"h1 happy days\n"+
":inline\n"+
" p this can have ${a(href='http://going-nowhere.com/') a link} in it"
f = jade.compile(jadestring);
console.log(f());