htmlparser2
Advanced tools
Comparing version 3.9.2 to 3.10.0
@@ -1,4 +0,4 @@ | ||
var index = require("./index.js"), | ||
DomHandler = index.DomHandler, | ||
DomUtils = index.DomUtils; | ||
var index = require("./index.js"); | ||
var DomHandler = index.DomHandler; | ||
var DomUtils = index.DomUtils; | ||
@@ -5,0 +5,0 @@ //TODO: make this a streamable handler |
@@ -1,3 +0,3 @@ | ||
var Parser = require("./Parser.js"), | ||
DomHandler = require("domhandler"); | ||
var Parser = require("./Parser.js"); | ||
var DomHandler = require("domhandler"); | ||
@@ -4,0 +4,0 @@ function defineProp(name, value){ |
@@ -80,15 +80,22 @@ var Tokenizer = require("./Tokenizer.js"); | ||
wbr: true, | ||
//common self closing svg elements | ||
path: true, | ||
circle: true, | ||
ellipse: true, | ||
line: true, | ||
rect: true, | ||
use: true, | ||
stop: true, | ||
polyline: true, | ||
polygon: true | ||
}; | ||
var foreignContextElements = { | ||
__proto__: null, | ||
math: true, | ||
svg: true | ||
} | ||
var htmlIntegrationElements = { | ||
__proto__: null, | ||
mi: true, | ||
mo: true, | ||
mn: true, | ||
ms: true, | ||
mtext: true, | ||
"annotation-xml": true, | ||
foreignObject: true, | ||
desc: true, | ||
title: true | ||
} | ||
var re_nameEnd = /\s|\//; | ||
@@ -105,2 +112,3 @@ | ||
this._stack = []; | ||
this._foreignContext = []; | ||
@@ -111,7 +119,7 @@ this.startIndex = 0; | ||
this._lowerCaseTagNames = "lowerCaseTags" in this._options ? | ||
!!this._options.lowerCaseTags : | ||
!this._options.xmlMode; | ||
!!this._options.lowerCaseTags : | ||
!this._options.xmlMode; | ||
this._lowerCaseAttributeNames = "lowerCaseAttributeNames" in this._options ? | ||
!!this._options.lowerCaseAttributeNames : | ||
!this._options.xmlMode; | ||
!!this._options.lowerCaseAttributeNames : | ||
!this._options.xmlMode; | ||
@@ -165,2 +173,4 @@ if(this._options.Tokenizer) { | ||
this._stack.push(name); | ||
if(name in foreignContextElements) this._foreignContext.push(true); | ||
else if(name in htmlIntegrationElements) this._foreignContext.push(false); | ||
} | ||
@@ -213,3 +223,4 @@ | ||
Parser.prototype.onselfclosingtag = function(){ | ||
if(this._options.xmlMode || this._options.recognizeSelfClosing){ | ||
if(this._options.xmlMode || this._options.recognizeSelfClosing | ||
|| this._foreignContext[this._foreignContext.length - 1]){ | ||
this._closeCurrentTag(); | ||
@@ -233,2 +244,5 @@ } else { | ||
this._stack.pop(); | ||
if((name in foreignContextElements) || (name in htmlIntegrationElements)){ | ||
this._foreignContext.pop(); | ||
} | ||
} | ||
@@ -235,0 +249,0 @@ }; |
module.exports = Tokenizer; | ||
var decodeCodePoint = require("entities/lib/decode_codepoint.js"), | ||
entityMap = require("entities/maps/entities.json"), | ||
legacyMap = require("entities/maps/legacy.json"), | ||
xmlMap = require("entities/maps/xml.json"), | ||
var decodeCodePoint = require("entities/lib/decode_codepoint.js"); | ||
var entityMap = require("entities/maps/entities.json"); | ||
var legacyMap = require("entities/maps/legacy.json"); | ||
var xmlMap = require("entities/maps/xml.json"); | ||
i = 0, | ||
var i = 0; | ||
TEXT = i++, | ||
BEFORE_TAG_NAME = i++, //after < | ||
IN_TAG_NAME = i++, | ||
IN_SELF_CLOSING_TAG = i++, | ||
BEFORE_CLOSING_TAG_NAME = i++, | ||
IN_CLOSING_TAG_NAME = i++, | ||
AFTER_CLOSING_TAG_NAME = i++, | ||
var TEXT = i++; | ||
var BEFORE_TAG_NAME = i++; //after < | ||
var IN_TAG_NAME = i++; | ||
var IN_SELF_CLOSING_TAG = i++; | ||
var BEFORE_CLOSING_TAG_NAME = i++; | ||
var IN_CLOSING_TAG_NAME = i++; | ||
var AFTER_CLOSING_TAG_NAME = i++; | ||
//attributes | ||
BEFORE_ATTRIBUTE_NAME = i++, | ||
IN_ATTRIBUTE_NAME = i++, | ||
AFTER_ATTRIBUTE_NAME = i++, | ||
BEFORE_ATTRIBUTE_VALUE = i++, | ||
IN_ATTRIBUTE_VALUE_DQ = i++, // " | ||
IN_ATTRIBUTE_VALUE_SQ = i++, // ' | ||
IN_ATTRIBUTE_VALUE_NQ = i++, | ||
//attributes | ||
var BEFORE_ATTRIBUTE_NAME = i++; | ||
var IN_ATTRIBUTE_NAME = i++; | ||
var AFTER_ATTRIBUTE_NAME = i++; | ||
var BEFORE_ATTRIBUTE_VALUE = i++; | ||
var IN_ATTRIBUTE_VALUE_DQ = i++; // " | ||
var IN_ATTRIBUTE_VALUE_SQ = i++; // ' | ||
var IN_ATTRIBUTE_VALUE_NQ = i++; | ||
//declarations | ||
BEFORE_DECLARATION = i++, // ! | ||
IN_DECLARATION = i++, | ||
//declarations | ||
var BEFORE_DECLARATION = i++; // ! | ||
var IN_DECLARATION = i++; | ||
//processing instructions | ||
IN_PROCESSING_INSTRUCTION = i++, // ? | ||
//processing instructions | ||
var IN_PROCESSING_INSTRUCTION = i++; // ? | ||
//comments | ||
BEFORE_COMMENT = i++, | ||
IN_COMMENT = i++, | ||
AFTER_COMMENT_1 = i++, | ||
AFTER_COMMENT_2 = i++, | ||
//comments | ||
var BEFORE_COMMENT = i++; | ||
var IN_COMMENT = i++; | ||
var AFTER_COMMENT_1 = i++; | ||
var AFTER_COMMENT_2 = i++; | ||
//cdata | ||
BEFORE_CDATA_1 = i++, // [ | ||
BEFORE_CDATA_2 = i++, // C | ||
BEFORE_CDATA_3 = i++, // D | ||
BEFORE_CDATA_4 = i++, // A | ||
BEFORE_CDATA_5 = i++, // T | ||
BEFORE_CDATA_6 = i++, // A | ||
IN_CDATA = i++, // [ | ||
AFTER_CDATA_1 = i++, // ] | ||
AFTER_CDATA_2 = i++, // ] | ||
//cdata | ||
var BEFORE_CDATA_1 = i++; // [ | ||
var BEFORE_CDATA_2 = i++; // C | ||
var BEFORE_CDATA_3 = i++; // D | ||
var BEFORE_CDATA_4 = i++; // A | ||
var BEFORE_CDATA_5 = i++; // T | ||
var BEFORE_CDATA_6 = i++; // A | ||
var IN_CDATA = i++; // [ | ||
var AFTER_CDATA_1 = i++; // ] | ||
var AFTER_CDATA_2 = i++; // ] | ||
//special tags | ||
BEFORE_SPECIAL = i++, //S | ||
BEFORE_SPECIAL_END = i++, //S | ||
//special tags | ||
var BEFORE_SPECIAL = i++; //S | ||
var BEFORE_SPECIAL_END = i++; //S | ||
BEFORE_SCRIPT_1 = i++, //C | ||
BEFORE_SCRIPT_2 = i++, //R | ||
BEFORE_SCRIPT_3 = i++, //I | ||
BEFORE_SCRIPT_4 = i++, //P | ||
BEFORE_SCRIPT_5 = i++, //T | ||
AFTER_SCRIPT_1 = i++, //C | ||
AFTER_SCRIPT_2 = i++, //R | ||
AFTER_SCRIPT_3 = i++, //I | ||
AFTER_SCRIPT_4 = i++, //P | ||
AFTER_SCRIPT_5 = i++, //T | ||
var BEFORE_SCRIPT_1 = i++; //C | ||
var BEFORE_SCRIPT_2 = i++; //R | ||
var BEFORE_SCRIPT_3 = i++; //I | ||
var BEFORE_SCRIPT_4 = i++; //P | ||
var BEFORE_SCRIPT_5 = i++; //T | ||
var AFTER_SCRIPT_1 = i++; //C | ||
var AFTER_SCRIPT_2 = i++; //R | ||
var AFTER_SCRIPT_3 = i++; //I | ||
var AFTER_SCRIPT_4 = i++; //P | ||
var AFTER_SCRIPT_5 = i++; //T | ||
BEFORE_STYLE_1 = i++, //T | ||
BEFORE_STYLE_2 = i++, //Y | ||
BEFORE_STYLE_3 = i++, //L | ||
BEFORE_STYLE_4 = i++, //E | ||
AFTER_STYLE_1 = i++, //T | ||
AFTER_STYLE_2 = i++, //Y | ||
AFTER_STYLE_3 = i++, //L | ||
AFTER_STYLE_4 = i++, //E | ||
var BEFORE_STYLE_1 = i++; //T | ||
var BEFORE_STYLE_2 = i++; //Y | ||
var BEFORE_STYLE_3 = i++; //L | ||
var BEFORE_STYLE_4 = i++; //E | ||
var AFTER_STYLE_1 = i++; //T | ||
var AFTER_STYLE_2 = i++; //Y | ||
var AFTER_STYLE_3 = i++; //L | ||
var AFTER_STYLE_4 = i++; //E | ||
BEFORE_ENTITY = i++, //& | ||
BEFORE_NUMERIC_ENTITY = i++, //# | ||
IN_NAMED_ENTITY = i++, | ||
IN_NUMERIC_ENTITY = i++, | ||
IN_HEX_ENTITY = i++, //X | ||
var BEFORE_ENTITY = i++; //& | ||
var BEFORE_NUMERIC_ENTITY = i++; //# | ||
var IN_NAMED_ENTITY = i++; | ||
var IN_NUMERIC_ENTITY = i++; | ||
var IN_HEX_ENTITY = i++; //X | ||
j = 0, | ||
var j = 0; | ||
SPECIAL_NONE = j++, | ||
SPECIAL_SCRIPT = j++, | ||
SPECIAL_STYLE = j++; | ||
var SPECIAL_NONE = j++; | ||
var SPECIAL_SCRIPT = j++; | ||
var SPECIAL_STYLE = j++; | ||
@@ -91,8 +91,2 @@ function whitespace(c){ | ||
function characterState(char, SUCCESS){ | ||
return function(c){ | ||
if(c === char) this._state = SUCCESS; | ||
}; | ||
} | ||
function ifElseState(upper, SUCCESS, FAILURE){ | ||
@@ -183,3 +177,3 @@ var lower = upper.toLowerCase(); | ||
this._state = (!this._xmlMode && (c === "s" || c === "S")) ? | ||
BEFORE_SPECIAL : IN_TAG_NAME; | ||
BEFORE_SPECIAL : IN_TAG_NAME; | ||
this._sectionStart = this._index; | ||
@@ -333,4 +327,4 @@ } | ||
this._state = c === "[" ? BEFORE_CDATA_1 : | ||
c === "-" ? BEFORE_COMMENT : | ||
IN_DECLARATION; | ||
c === "-" ? BEFORE_COMMENT : | ||
IN_DECLARATION; | ||
}; | ||
@@ -407,3 +401,6 @@ | ||
Tokenizer.prototype._stateAfterCdata1 = characterState("]", AFTER_CDATA_2); | ||
Tokenizer.prototype._stateAfterCdata1 = function(c){ | ||
if(c === "]") this._state = AFTER_CDATA_2; | ||
else this._state = IN_CDATA; | ||
}; | ||
@@ -410,0 +407,0 @@ Tokenizer.prototype._stateAfterCdata2 = function(c){ |
module.exports = Stream; | ||
var Parser = require("./Parser.js"), | ||
WritableStream = require("stream").Writable || require("readable-stream").Writable, | ||
StringDecoder = require("string_decoder").StringDecoder, | ||
Buffer = require("buffer").Buffer; | ||
var Parser = require("./Parser.js"); | ||
var WritableStream = require("readable-stream").Writable; | ||
var StringDecoder = require("string_decoder").StringDecoder; | ||
var Buffer = require("buffer").Buffer; | ||
@@ -25,2 +25,2 @@ function Stream(cbs, options){ | ||
cb(); | ||
}; | ||
}; |
{ | ||
"name": "htmlparser2", | ||
"description": "Fast & forgiving HTML/XML/RSS parser", | ||
"version": "3.9.2", | ||
"version": "3.10.0", | ||
"author": "Felix Boehm <me@feedic.com>", | ||
@@ -43,9 +43,9 @@ "keywords": [ | ||
"inherits": "^2.0.1", | ||
"readable-stream": "^2.0.2" | ||
"readable-stream": "^3.0.6" | ||
}, | ||
"devDependencies": { | ||
"coveralls": "^2.11.4", | ||
"coveralls": "^3.0.1", | ||
"eslint": "^4.19.1", | ||
"istanbul": "^0.4.3", | ||
"mocha": "^2.2.5", | ||
"eslint": "^2.12.0", | ||
"mocha": "^5.2.0", | ||
"mocha-lcov-reporter": "^1.2.0" | ||
@@ -52,0 +52,0 @@ }, |
@@ -13,3 +13,3 @@ # htmlparser2 | ||
A live demo of htmlparser2 is available [here](http://demos.forbeslindesay.co.uk/htmlparser2/). | ||
A live demo of htmlparser2 is available [here](https://astexplorer.net/#/2AmVrGuGVJ). | ||
@@ -16,0 +16,0 @@ ## Usage |
48585
1367
+ Addedreadable-stream@3.6.2(transitive)
+ Addedsafe-buffer@5.2.1(transitive)
+ Addedstring_decoder@1.3.0(transitive)
- Removedcore-util-is@1.0.3(transitive)
- Removedisarray@1.0.0(transitive)
- Removedprocess-nextick-args@2.0.1(transitive)
- Removedreadable-stream@2.3.8(transitive)
- Removedsafe-buffer@5.1.2(transitive)
- Removedstring_decoder@1.1.1(transitive)
Updatedreadable-stream@^3.0.6