|
1 | 1 | import { |
2 | 2 | DefaultTreeCommentNode, |
3 | 3 | DefaultTreeDocument, |
| 4 | + DefaultTreeDocumentType, |
4 | 5 | DefaultTreeElement, |
5 | 6 | DefaultTreeNode, |
6 | 7 | DefaultTreeTextNode, |
@@ -73,36 +74,32 @@ class Parser { |
73 | 74 | return; |
74 | 75 | } |
75 | 76 |
|
76 | | - for (const treeNode of tree) { |
77 | | - const node = treeNode as DefaultTreeElement; |
78 | | - |
79 | | - const pugNode = this.parseHtmlNode(node, indentLevel); |
| 77 | + for (const treeNode of tree as DefaultTreeElement[]) { |
| 78 | + const pugNode = this.parseHtmlNode(treeNode, indentLevel); |
80 | 79 | if (pugNode) { |
81 | 80 | this.pug += `\n${pugNode.toString()}`; |
82 | 81 | } |
83 | 82 |
|
84 | 83 | if ( |
85 | | - Array.isArray(node.childNodes) && |
86 | | - node.childNodes.length && |
87 | | - !hasOnlyTextChildNode(node) |
| 84 | + Array.isArray(treeNode.childNodes) && |
| 85 | + treeNode.childNodes.length && |
| 86 | + !hasOnlyTextChildNode(treeNode) |
88 | 87 | ) { |
89 | | - yield* this.walk(node.childNodes, indentLevel + 1); |
| 88 | + yield* this.walk(treeNode.childNodes, indentLevel + 1); |
90 | 89 | } |
91 | 90 | } |
92 | 91 | } |
| 92 | + |
93 | 93 | /** |
94 | 94 | * Creates a [PugNode] from a #documentType element. |
95 | 95 | * |
96 | 96 | * @param indentLevel |
97 | 97 | */ |
98 | | - private createDoctypeNode = (indentLevel: number): PugNode => |
99 | | - new PugNode( |
100 | | - Nodes.Doctype, |
101 | | - 'doctype html', |
102 | | - indentLevel, |
103 | | - this.tabs, |
104 | | - this.commas, |
105 | | - ); |
| 98 | + private createDoctypeNode = ( |
| 99 | + node: DefaultTreeDocumentType, |
| 100 | + indentLevel: number, |
| 101 | + ): PugNode => |
| 102 | + new PugNode(Nodes.Doctype, node.name, indentLevel, this.tabs, this.commas); |
106 | 103 |
|
107 | 104 | /** |
108 | 105 | * Creates a [PugNode] from a #comment element. |
@@ -142,6 +139,7 @@ class Parser { |
142 | 139 | * Converts an HTML element into a [PugNode]. |
143 | 140 | * |
144 | 141 | * @param node |
| 142 | + * @param indentLevel |
145 | 143 | */ |
146 | 144 | private createElementNode( |
147 | 145 | node: DefaultTreeElement, |
@@ -178,7 +176,10 @@ class Parser { |
178 | 176 | ): PugNode | void { |
179 | 177 | switch (node.nodeName) { |
180 | 178 | case Nodes.Doctype: |
181 | | - return this.createDoctypeNode(indentLevel); |
| 179 | + return this.createDoctypeNode( |
| 180 | + node as DefaultTreeDocumentType, |
| 181 | + indentLevel, |
| 182 | + ); |
182 | 183 | case Nodes.Comment: |
183 | 184 | return this.createCommentNode( |
184 | 185 | node as DefaultTreeCommentNode, |
|
0 commit comments