Last change
on this file since 145 was 145, checked in by Izuru Yakumo, 22 months ago |
Updated the Makefile and vendored depedencies
Signed-off-by: Izuru Yakumo <yakumo.izuru@…>
|
File size:
2.5 KB
|
Line | |
---|
1 | // Copyright 2011 The Go Authors. All rights reserved.
|
---|
2 | // Use of this source code is governed by a BSD-style
|
---|
3 | // license that can be found in the LICENSE file.
|
---|
4 |
|
---|
5 | package html
|
---|
6 |
|
---|
7 | // Section 12.2.4.2 of the HTML5 specification says "The following elements
|
---|
8 | // have varying levels of special parsing rules".
|
---|
9 | // https://html.spec.whatwg.org/multipage/syntax.html#the-stack-of-open-elements
|
---|
10 | var isSpecialElementMap = map[string]bool{
|
---|
11 | "address": true,
|
---|
12 | "applet": true,
|
---|
13 | "area": true,
|
---|
14 | "article": true,
|
---|
15 | "aside": true,
|
---|
16 | "base": true,
|
---|
17 | "basefont": true,
|
---|
18 | "bgsound": true,
|
---|
19 | "blockquote": true,
|
---|
20 | "body": true,
|
---|
21 | "br": true,
|
---|
22 | "button": true,
|
---|
23 | "caption": true,
|
---|
24 | "center": true,
|
---|
25 | "col": true,
|
---|
26 | "colgroup": true,
|
---|
27 | "dd": true,
|
---|
28 | "details": true,
|
---|
29 | "dir": true,
|
---|
30 | "div": true,
|
---|
31 | "dl": true,
|
---|
32 | "dt": true,
|
---|
33 | "embed": true,
|
---|
34 | "fieldset": true,
|
---|
35 | "figcaption": true,
|
---|
36 | "figure": true,
|
---|
37 | "footer": true,
|
---|
38 | "form": true,
|
---|
39 | "frame": true,
|
---|
40 | "frameset": true,
|
---|
41 | "h1": true,
|
---|
42 | "h2": true,
|
---|
43 | "h3": true,
|
---|
44 | "h4": true,
|
---|
45 | "h5": true,
|
---|
46 | "h6": true,
|
---|
47 | "head": true,
|
---|
48 | "header": true,
|
---|
49 | "hgroup": true,
|
---|
50 | "hr": true,
|
---|
51 | "html": true,
|
---|
52 | "iframe": true,
|
---|
53 | "img": true,
|
---|
54 | "input": true,
|
---|
55 | "keygen": true, // "keygen" has been removed from the spec, but are kept here for backwards compatibility.
|
---|
56 | "li": true,
|
---|
57 | "link": true,
|
---|
58 | "listing": true,
|
---|
59 | "main": true,
|
---|
60 | "marquee": true,
|
---|
61 | "menu": true,
|
---|
62 | "meta": true,
|
---|
63 | "nav": true,
|
---|
64 | "noembed": true,
|
---|
65 | "noframes": true,
|
---|
66 | "noscript": true,
|
---|
67 | "object": true,
|
---|
68 | "ol": true,
|
---|
69 | "p": true,
|
---|
70 | "param": true,
|
---|
71 | "plaintext": true,
|
---|
72 | "pre": true,
|
---|
73 | "script": true,
|
---|
74 | "section": true,
|
---|
75 | "select": true,
|
---|
76 | "source": true,
|
---|
77 | "style": true,
|
---|
78 | "summary": true,
|
---|
79 | "table": true,
|
---|
80 | "tbody": true,
|
---|
81 | "td": true,
|
---|
82 | "template": true,
|
---|
83 | "textarea": true,
|
---|
84 | "tfoot": true,
|
---|
85 | "th": true,
|
---|
86 | "thead": true,
|
---|
87 | "title": true,
|
---|
88 | "tr": true,
|
---|
89 | "track": true,
|
---|
90 | "ul": true,
|
---|
91 | "wbr": true,
|
---|
92 | "xmp": true,
|
---|
93 | }
|
---|
94 |
|
---|
95 | func isSpecialElement(element *Node) bool {
|
---|
96 | switch element.Namespace {
|
---|
97 | case "", "html":
|
---|
98 | return isSpecialElementMap[element.Data]
|
---|
99 | case "math":
|
---|
100 | switch element.Data {
|
---|
101 | case "mi", "mo", "mn", "ms", "mtext", "annotation-xml":
|
---|
102 | return true
|
---|
103 | }
|
---|
104 | case "svg":
|
---|
105 | switch element.Data {
|
---|
106 | case "foreignObject", "desc", "title":
|
---|
107 | return true
|
---|
108 | }
|
---|
109 | }
|
---|
110 | return false
|
---|
111 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.