Comparing version 0.3.2 to 0.4.0
@@ -0,1 +1,11 @@ | ||
0.4.0 / 2011-12-19 | ||
================== | ||
* Rewrote all unit tests as cheerio transitioned from vows -> mocha | ||
* Internally, renderer.render -> render(...), parser.parse -> parse(...) | ||
* Append, prepend, html, before, after all work with only text (no tags) | ||
* Bugfix: Attributes can now be removed from script and style tags | ||
* Added yield as a single tag | ||
* Cheerio now compatible with node >=0.4.7 | ||
0.3.2 / 2011-12-1 | ||
@@ -2,0 +12,0 @@ ================= |
18
index.js
// Use source if we have coffeescript otherwise use lib | ||
try { | ||
require('coffee-script'); | ||
module.exports = require(__dirname + "/src/cheerio.coffee"); | ||
require('coffee-script'); | ||
base = './src/' | ||
} catch (e) { | ||
module.exports = require(__dirname + "/lib/cheerio.js"); | ||
} | ||
base = './lib/' | ||
} | ||
exports = module.exports = require(base + 'cheerio') | ||
exports.parse = require(base + 'parse') | ||
exports.render = require(base + 'render') | ||
exports.utils = require(base + 'utils') | ||
/* | ||
Attach other modules on here, this will allow testing to be done in mocha without recompiling | ||
*/ |
(function() { | ||
var $, after, append, before, empty, html, parser, prepend, remove, removeChild, replaceWith, text, _; | ||
var $, after, append, before, empty, html, parse, prepend, remove, removeChild, replaceWith, text, _; | ||
var __slice = Array.prototype.slice; | ||
@@ -9,3 +9,3 @@ | ||
parser = require('../parser'); | ||
parse = require('../parse'); | ||
@@ -24,3 +24,7 @@ removeChild = function(parent, elem) { | ||
elem = elems[_i]; | ||
dom = dom.concat($(elem).get()); | ||
if (elem.cheerio) { | ||
dom = dom.concat(elem.toArray()); | ||
} else { | ||
dom = dom.concat(parse.eval(elem)); | ||
} | ||
} | ||
@@ -43,3 +47,7 @@ this.each(function() { | ||
elem = elems[_i]; | ||
dom = dom.concat($(elem).get()); | ||
if (elem.cheerio) { | ||
dom = dom.concat(elem.toArray()); | ||
} else { | ||
dom = dom.concat(parse.eval(elem)); | ||
} | ||
} | ||
@@ -62,3 +70,7 @@ this.each(function() { | ||
elem = elems[_i]; | ||
dom = dom.concat($(elem).get()); | ||
if (elem.cheerio) { | ||
dom = dom.concat(elem.toArray()); | ||
} else { | ||
dom = dom.concat(parse.eval(elem)); | ||
} | ||
} | ||
@@ -82,3 +94,7 @@ this.each(function() { | ||
elem = elems[_i]; | ||
dom = dom.concat($(elem).get()); | ||
if (elem.cheerio) { | ||
dom = dom.concat(elem.toArray()); | ||
} else { | ||
dom = dom.concat(parse.eval(elem)); | ||
} | ||
} | ||
@@ -113,3 +129,3 @@ this.each(function() { | ||
var elems; | ||
elems = $(content).get(); | ||
elems = parse.eval(content); | ||
return this.each(function() { | ||
@@ -134,7 +150,7 @@ var index, siblings; | ||
if (typeof htmlString !== "object" && htmlString !== void 0) { | ||
htmlElement = parser.parse(htmlString); | ||
return this.each(function(i) { | ||
if (this.children) this.children = htmlElement; | ||
return this; | ||
htmlElement = parse.eval(htmlString); | ||
this.each(function(i) { | ||
return this.children = htmlElement; | ||
}); | ||
return this; | ||
} else { | ||
@@ -141,0 +157,0 @@ return $.html(this[0]); |
@@ -18,2 +18,3 @@ (function() { | ||
var elem; | ||
if (!selector) return this; | ||
elem = soupselect.select(this.toArray(), selector); | ||
@@ -20,0 +21,0 @@ return $(elem); |
(function() { | ||
var $, access, attr, class2type, dom, each, html, inArray, indexOf, isArray, isTag, load, makeArray, merge, parser, push, rboolean, removeAttr, renderer, tags, text, toString, type, updateDOM, _; | ||
var $, access, attr, class2type, dom, each, html, inArray, indexOf, isArray, isTag, load, makeArray, merge, parse, push, rboolean, removeAttr, render, tags, text, toString, type, updateDOM, _; | ||
@@ -8,5 +8,5 @@ _ = require("underscore"); | ||
parser = require("../parser"); | ||
parse = require("../parse"); | ||
renderer = require("../renderer"); | ||
render = require("../render"); | ||
@@ -100,3 +100,3 @@ class2type = {}; | ||
ret = results || []; | ||
if (array != null) { | ||
if (array) { | ||
type = $.type(array); | ||
@@ -184,3 +184,3 @@ if (!(array.length != null) || type === "string" || type === "function" || type === "regexp") { | ||
removeAttr = exports.removeAttr = function(elem, name) { | ||
if (elem.type === 'tag' && elem.attribs) { | ||
if (isTag(elem.type) && elem.attribs) { | ||
if (elem.attribs[name]) { | ||
@@ -213,3 +213,3 @@ if (rboolean.test(elem.attribs[name])) { | ||
var fn, root; | ||
root = parser.parse(html); | ||
root = parse(html); | ||
$.extend({ | ||
@@ -219,3 +219,3 @@ 'root': root | ||
fn = function(selector, context, r) { | ||
if (r) root = parser.parse(r); | ||
if (r) root = parse(r); | ||
return $(selector, context, root); | ||
@@ -228,5 +228,5 @@ }; | ||
if (dom !== void 0 && dom.type) { | ||
return renderer.render(dom); | ||
return render(dom); | ||
} else if (this.root && this.root.children) { | ||
return renderer.render(this.root.children); | ||
return render(this.root.children); | ||
} else { | ||
@@ -233,0 +233,0 @@ return ""; |
(function() { | ||
var api, cheerio, parser, path, plugin, soupselect, _, _i, _len; | ||
var api, cheerio, parse, path, plugin, soupselect, _, _i, _len; | ||
@@ -10,3 +10,3 @@ path = require("path"); | ||
parser = require("./parser"); | ||
parse = require("./parse"); | ||
@@ -22,3 +22,3 @@ cheerio = (function() { | ||
cheerio.fn = cheerio.prototype = { | ||
cheerio: "0.3.2", | ||
cheerio: "0.4.0", | ||
constructor: cheerio, | ||
@@ -43,5 +43,5 @@ init: function(selector, context, root) { | ||
if (match[1]) { | ||
root = parser.parse(selector); | ||
root = parse(selector); | ||
return cheerio.merge(this, root.children); | ||
} else { | ||
} else if (context) { | ||
elems = soupselect.select(context, selector); | ||
@@ -52,6 +52,9 @@ this.selector = selector; | ||
} | ||
/* | ||
Refactor | ||
*/ | ||
if (!context || context.cheerio) { | ||
return (context || root).find(selector); | ||
return this.constructor(context || root).find(selector); | ||
} else { | ||
if (_.isString(context)) context = parser.parse(context); | ||
if (_.isString(context)) context = parse(context); | ||
return this.constructor(context).find(selector); | ||
@@ -58,0 +61,0 @@ } |
(function() { | ||
var createTree, fs, htmlparser, parse, splice; | ||
var createTree, eval, fs, htmlparser, parse, splice; | ||
htmlparser = require("htmlparser2"); | ||
fs = require("fs"); | ||
splice = [].splice; | ||
parse = exports.parse = function(content) { | ||
var dom, handler, parser, root; | ||
eval = exports.eval = function(content) { | ||
var handler, parser; | ||
handler = new htmlparser.DefaultHandler(); | ||
@@ -16,3 +12,7 @@ parser = new htmlparser.Parser(handler); | ||
parser.parseComplete(content); | ||
dom = handler.dom; | ||
return handler.dom; | ||
}; | ||
parse = exports.parse = function(content) { | ||
var dom, root; | ||
dom = eval(content); | ||
root = { | ||
@@ -29,6 +29,7 @@ type: 'root', | ||
}; | ||
createTree = function(dom, parent) { | ||
createTree = exports.createTree = function(dom, parent) { | ||
var elem, i, lastElem, prev, prevIndex, _len; | ||
if (parent == null) parent = null; | ||
if (parent == null) { | ||
parent = null; | ||
} | ||
prevIndex = -1; | ||
@@ -46,4 +47,8 @@ lastElem = null; | ||
dom[i].next = null; | ||
if (lastElem) lastElem.next = dom[i]; | ||
if (dom[i].children) createTree(dom[i].children, dom[i]); | ||
if (lastElem) { | ||
lastElem.next = dom[i]; | ||
} | ||
if (dom[i].children) { | ||
createTree(dom[i].children, dom[i]); | ||
} | ||
prevIndex = i; | ||
@@ -54,5 +59,3 @@ lastElem = dom[i]; | ||
}; | ||
module.exports = exports; | ||
}).call(this); |
(function() { | ||
var render, renderComment, renderDirective, renderTag, renderText, singleTag, tagType, utils, _; | ||
_ = require("underscore"); | ||
utils = require("./utils"); | ||
singleTag = { | ||
@@ -23,5 +20,5 @@ area: 1, | ||
embed: 1, | ||
include: 1 | ||
include: 1, | ||
yield: 1 | ||
}; | ||
tagType = { | ||
@@ -34,13 +31,20 @@ tag: 1, | ||
}; | ||
render = exports.render = function(dom, output) { | ||
var data, elem, str, _i, _len; | ||
if (output == null) output = []; | ||
if (!_.isArray(dom)) dom = [dom]; | ||
if (output == null) { | ||
output = []; | ||
} | ||
if (!_.isArray(dom)) { | ||
dom = [dom]; | ||
} | ||
for (_i = 0, _len = dom.length; _i < _len; _i++) { | ||
elem = dom[_i]; | ||
str = elem.name; | ||
if (elem.raw === null) continue; | ||
if (elem.raw === null) { | ||
continue; | ||
} | ||
data = elem.data; | ||
if (data[0] === '%' && data[data.length - 1] === '%') elem.type = "template"; | ||
if (data[0] === '%' && data[data.length - 1] === '%') { | ||
elem.type = "template"; | ||
} | ||
if (tagType[elem.type]) { | ||
@@ -55,3 +59,5 @@ output.push(renderTag(elem)); | ||
} | ||
if (elem.children) output.push(render(elem.children)); | ||
if (elem.children) { | ||
output.push(render(elem.children)); | ||
} | ||
if (!singleTag[elem.name] && tagType[elem.type]) { | ||
@@ -63,3 +69,2 @@ output.push("</" + elem.name + ">"); | ||
}; | ||
renderTag = function(elem) { | ||
@@ -78,17 +83,12 @@ var tag; | ||
}; | ||
renderDirective = function(elem) { | ||
return "<" + elem.raw + ">"; | ||
}; | ||
renderText = function(elem) { | ||
return elem.raw; | ||
}; | ||
renderComment = function(elem) { | ||
return '<!--' + elem.raw + '-->'; | ||
}; | ||
module.exports = exports; | ||
}).call(this); |
@@ -6,3 +6,3 @@ { | ||
"keywords": ["htmlparser", "jquery", "selector", "scraper"], | ||
"version": "0.3.2", | ||
"version": "0.4.0", | ||
"repository": { | ||
@@ -14,15 +14,13 @@ "type": "git", | ||
"engines": { | ||
"node": ">= 0.4.11" | ||
"node": ">= 0.4.7" | ||
}, | ||
"dependencies": { | ||
"cheerio-soupselect" : "0.0.x", | ||
"htmlparser2" : "1.x", | ||
"htmlparser2" : "2.x", | ||
"underscore" : "1.x" | ||
}, | ||
"devDependencies": { | ||
"mocha" : "0.x", | ||
"coffee-script" : "1.1.x", | ||
"vows" : "0.5.x", | ||
"diff_match_patch" : "0.1.x", | ||
"should" : "0.x", | ||
"request" : "2.x" | ||
"should" : "*" | ||
}, | ||
@@ -29,0 +27,0 @@ "scripts": { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
94383
3
45
1052
6
2
- Removedhtmlparser2@1.5.0(transitive)
Updatedhtmlparser2@2.x