Socket
Socket
Sign inDemoInstall

derby-jade

Package Overview
Dependencies
Maintainers
2
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

derby-jade - npm Package Compare versions

Comparing version 0.6.12 to 0.6.13

test/basic/coffee.jade

75

index.js
var jade = require('jade');
var coffee = require('./coffee');
var crypto = require('crypto');
var path = require('path');
var fs = require('fs');
var os = require('os');
//process.env.DEBUG = 'derby-jade';

@@ -39,3 +43,3 @@ var debug = require('debug')('derby-jade');

}
return indentation + '__derby-statement(type=\"' + type + '\"' +
return indentation + '__derby-statement(type=\"' + type + '\"' +
(expression ? ' value=\"' + escape(expression) + '\"' : '') + ')';

@@ -78,3 +82,3 @@ })

function compiler(file, fileName) {
function compiler(file, fileName, preprocessOnly) {
var out = [];

@@ -102,5 +106,2 @@ var lines = file.replace(/\r\n/g, newLine).split(newLine);

.replace(/\n/g, newLine)
// Remove underscores
.replace(/<_derby_/g, '<')
.replace(/<\/_derby_/g, '<\/')
// Add colons

@@ -110,5 +111,17 @@ //.replace(/^\s*(<([\w-:]+))((?:\b[^>]+)?>)\n?([\s\S]*?)\n?<\/\2>$/, function (template, left, name, right, content) {

//})
.replace(r('^\\s*(<([\\w-:]+))((?:\\b[^>]+)?>)(?:' + regNewLine + ')?([\\s\\S]*?)(?:' + regNewLine + ')?<\\/\\2>$'), function (template, left, name, right, content) {
return left + ':' + right + (content ? newLine + content : '');
.replace(r('\\s*(<([\\w-:]+))((?:\\b[^>]+)?>)(?:' + regNewLine + ')?([\\s\\S]*?)(?:' + regNewLine + ')?<\\/\\2>', 'g'), function (template, left, name, right, content, offset, string) {
// console.log('-----------> HAS');
// console.log(template);
// console.log('-------> LEFT');
// console.log(left);
// console.log('-------> RIGHT');
// console.log(right);
// console.log('-------> CONTENT');
// console.log(content);
return left + ':' + right + (content ? newLine + content : '')
+ ((offset + template.length === string.length) ? '' : newLine);
})
// Remove underscores
.replace(/<_derby_/g, '<')
.replace(/<\/_derby_/g, '<\/')
// Add scripts

@@ -124,2 +137,11 @@ .replace(/<script(\d*)><\/script\1>/g, function(statement, index) {

function renderPreprocessBlock() {
if (block.length) {
debugString += ', block end';
var source = preprocess(block.join(newLine));
block = [];
out.push(source);
}
}
function closeScript() {

@@ -143,2 +165,3 @@ if (script.length) {

var line = lines[i];
var extendMatch, extendFileName, extendFile, extendTempFileName;

@@ -198,2 +221,28 @@ var res = /^(\s*)(.*?)$/g.exec(line);

// Jade's "extends" and "include"
// We have to compile the source file into a temporary one
if ((indent === 0) && (
extendMatch = statement.match(/^(extends|include) (\S+)/))) {
extendFileName = path.resolve(path.dirname(fileName), extendMatch[2]);
extendFileName = extendFileName.replace(/\.jade\s*$/, '') + '.jade';
extendFile = fs.readFileSync(extendFileName, { encoding: 'utf8' });
extendFile = compiler(extendFile, extendFileName, true);
extendTempFileName = path.join( os.tmpdir(),
crypto.createHash('md5').update(extendFileName).digest('hex')+ '.jade');
fs.writeFileSync(extendTempFileName, extendFile);
block.push( extendMatch[1] + ' '
+ path.relative(fileName, extendTempFileName) );
debug(debugString + ', jade extends');
continue;
}
// Other Jade reserved keywords
// Simply pass any preprocessing of them
if (indent === 0 &&
/^(\+|mixin|block|prepend|append)/.test(statement)) {
block.push(line);
debug(debugString + ', jade reserved');
continue;
}
if (indent === 0) {

@@ -203,3 +252,7 @@ // Derby tag

// so we should render last one first
renderBlock();
if (preprocessOnly) {
renderPreprocessBlock();
} else {
renderBlock();
}
// Remove colons after Derby tags

@@ -224,5 +277,9 @@ // it makes colons optional

closeScript();
renderBlock();
if (preprocessOnly) {
renderPreprocessBlock();
} else {
renderBlock();
}
return out.join(newLine);
}

2

package.json
{
"name": "derby-jade",
"description": "Jade for Derby.js",
"version": "0.6.12",
"version": "0.6.13",
"author": {

@@ -6,0 +6,0 @@ "name": "Vladimir Makhaev",

@@ -9,18 +9,63 @@ var assert = require("assert");

describe("test", function() {
it("jade + js", function() {
describe("Jade compiler", function() {
it("should compile Derby.js stuff", function() {
dJade(app);
var compiler = app.compilers[".jade"];
var jade = fs.readFileSync(__dirname + "/views/js.jade", "utf8");
var html = fs.readFileSync(__dirname + "/views/result.html", "utf8");
assert.equal(compiler(jade), html);
var jade = fs.readFileSync(__dirname + "/basic/js.jade", "utf8");
var html = fs.readFileSync(__dirname + "/basic/result.html", "utf8");
assert.equal(compiler(jade, __dirname + "/basic/js.jade"), html);
});
it("jade + coffee", function() {
it("should compile coffee in <script> when 'coffee' option is on", function() {
dJade(app, {coffee: true});
var compiler = app.compilers[".jade"];
var jade = fs.readFileSync(__dirname + "/views/coffee.jade", "utf8");
var html = fs.readFileSync(__dirname + "/views/result.html", "utf8");
assert.equal(compiler(jade), html);
var jade = fs.readFileSync(__dirname + "/basic/coffee.jade", "utf8");
var html = fs.readFileSync(__dirname + "/basic/result.html", "utf8");
assert.equal(compiler(jade, __dirname + "/basic/coffee.jade"), html);
});
it("should do basic extend of a file", function() {
dJade(app);
var compiler = app.compilers[".jade"];
var jade = fs.readFileSync(__dirname
+ "/jadeFeatures/basicExtends/index.jade", "utf8");
var html = fs.readFileSync(__dirname
+ "/jadeFeatures/basicExtends/result.html", "utf8");
assert.equal(compiler(jade,
__dirname + "/jadeFeatures/basicExtends/index.jade"), html);
});
it("should support 'block' when extends", function() {
dJade(app);
var compiler = app.compilers[".jade"];
var jade = fs.readFileSync(__dirname
+ "/jadeFeatures/block/index.jade", "utf8");
var html = fs.readFileSync(__dirname
+ "/jadeFeatures/block/result.html", "utf8");
assert.equal(compiler(jade,
__dirname + "/jadeFeatures/block/index.jade"), html);
});
it("should pass tricky case", function() {
dJade(app);
var compiler = app.compilers[".jade"];
var jade = fs.readFileSync(__dirname
+ "/jadeFeatures/advanced/index.jade", "utf8");
var html = fs.readFileSync(__dirname
+ "/jadeFeatures/advanced/result.html", "utf8");
assert.equal(compiler(jade,
__dirname + "/jadeFeatures/advanced/index.jade"), html);
});
it.skip("should extend file with <script> in it", function() {
dJade(app);
var compiler = app.compilers[".jade"];
var jade = fs.readFileSync(__dirname
+ "/jadeFeatures/scriptExtends/index.jade", "utf8");
var html = fs.readFileSync(__dirname
+ "/basic/result.html", "utf8");
assert.equal(compiler(jade,
__dirname + "/jadeFeatures/scriptExtends/index.jade"), html);
});
});

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc