52 lines
1.2 KiB
JavaScript
52 lines
1.2 KiB
JavaScript
/**
|
|
* HTML Tags
|
|
*/
|
|
|
|
var tags = { tag: true, script: true, style: true };
|
|
|
|
/**
|
|
* Check if the DOM element is a tag
|
|
*
|
|
* isTag(type) includes <script> and <style> tags
|
|
*/
|
|
|
|
exports.isTag = function(type) {
|
|
if (type.type) type = type.type;
|
|
return tags[type] || false;
|
|
};
|
|
|
|
/**
|
|
* Convert a string to camel case notation.
|
|
* @param {String} str String to be converted.
|
|
* @return {String} String in camel case notation.
|
|
*/
|
|
|
|
exports.camelCase = function(str) {
|
|
return str.replace(/[_.-](\w|$)/g, function(_, x) {
|
|
return x.toUpperCase();
|
|
});
|
|
};
|
|
|
|
/**
|
|
* Convert a string from camel case to "CSS case", where word boundaries are
|
|
* described by hyphens ("-") and all characters are lower-case.
|
|
* @param {String} str String to be converted.
|
|
* @return {string} String in "CSS case".
|
|
*/
|
|
exports.cssCase = function(str) {
|
|
return str.replace(/[A-Z]/g, '-$&').toLowerCase();
|
|
};
|
|
|
|
/**
|
|
* Iterate over each DOM element without creating intermediary Cheerio instances.
|
|
*
|
|
* This is indented for use internally to avoid otherwise unnecessary memory pressure introduced
|
|
* by _make.
|
|
*/
|
|
|
|
exports.domEach = function(cheerio, fn) {
|
|
var i = 0, len = cheerio.length;
|
|
while (i < len && fn(i, cheerio[i]) !== false) ++i;
|
|
return cheerio;
|
|
};
|