parse5-htmlparser2-tree-adapter 8.0.1 → 8.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -0
- package/dist/index.js +7 -4
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -19,6 +19,19 @@
|
|
|
19
19
|
📖 <a href="https://parse5.js.org/modules/parse5-htmlparser2-tree-adapter.html"><b>Documentation</b></a> 📖
|
|
20
20
|
</p>
|
|
21
21
|
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
Parse an HTML fragment into [htmlparser2](https://github.com/fb55/htmlparser2)-compatible
|
|
25
|
+
nodes using `parse5` (`npm install parse5`).
|
|
26
|
+
|
|
27
|
+
```js
|
|
28
|
+
import { parseFragment } from 'parse5';
|
|
29
|
+
import { adapter } from 'parse5-htmlparser2-tree-adapter';
|
|
30
|
+
|
|
31
|
+
const fragment = parseFragment('<p>Hello, world!</p>', { treeAdapter: adapter });
|
|
32
|
+
console.log(fragment.children[0].name); // p
|
|
33
|
+
```
|
|
34
|
+
|
|
22
35
|
---
|
|
23
36
|
|
|
24
37
|
<p align="center">
|
package/dist/index.js
CHANGED
|
@@ -68,7 +68,8 @@ export const adapter = {
|
|
|
68
68
|
newNode.parent = parentNode;
|
|
69
69
|
},
|
|
70
70
|
insertBefore(parentNode, newNode, referenceNode) {
|
|
71
|
-
const
|
|
71
|
+
const { children } = parentNode;
|
|
72
|
+
const insertionIdx = children[children.length - 1] === referenceNode ? children.length - 1 : children.indexOf(referenceNode);
|
|
72
73
|
const { prev } = referenceNode;
|
|
73
74
|
if (prev) {
|
|
74
75
|
prev.next = newNode;
|
|
@@ -107,7 +108,9 @@ export const adapter = {
|
|
|
107
108
|
},
|
|
108
109
|
detachNode(node) {
|
|
109
110
|
if (node.parent) {
|
|
110
|
-
const
|
|
111
|
+
const { children } = node.parent;
|
|
112
|
+
// The parser detaches from the end when it moves children, so check the last child first.
|
|
113
|
+
const idx = children[children.length - 1] === node ? children.length - 1 : children.indexOf(node);
|
|
111
114
|
const { prev, next } = node;
|
|
112
115
|
node.prev = null;
|
|
113
116
|
node.next = null;
|
|
@@ -117,7 +120,7 @@ export const adapter = {
|
|
|
117
120
|
if (next) {
|
|
118
121
|
next.prev = prev;
|
|
119
122
|
}
|
|
120
|
-
|
|
123
|
+
children.splice(idx, 1);
|
|
121
124
|
node.parent = null;
|
|
122
125
|
}
|
|
123
126
|
},
|
|
@@ -131,7 +134,7 @@ export const adapter = {
|
|
|
131
134
|
}
|
|
132
135
|
},
|
|
133
136
|
insertTextBefore(parentNode, text, referenceNode) {
|
|
134
|
-
const prevNode =
|
|
137
|
+
const prevNode = referenceNode.prev;
|
|
135
138
|
if (prevNode && isText(prevNode)) {
|
|
136
139
|
prevNode.data += text;
|
|
137
140
|
}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "parse5-htmlparser2-tree-adapter",
|
|
3
3
|
"type": "module",
|
|
4
4
|
"description": "htmlparser2 tree adapter for parse5.",
|
|
5
|
-
"version": "8.0.
|
|
5
|
+
"version": "8.0.2",
|
|
6
6
|
"author": "Ivan Nikulin <ifaaan@gmail.com> (https://github.com/inikulin)",
|
|
7
7
|
"contributors": [
|
|
8
8
|
"James Garbutt (https://github.com/43081j)",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"domhandler": "^6.0.1",
|
|
32
|
-
"parse5": "^8.
|
|
32
|
+
"parse5": "^8.1.1"
|
|
33
33
|
},
|
|
34
34
|
"scripts": {},
|
|
35
35
|
"repository": {
|