mirror of
https://github.com/golang/net.git
synced 2026-03-31 18:37:08 +09:00
The current documentation as well as set of atoms and attributes has gotten slightly out of sync with the current state of the WHATWG html5 specification. The change adds and removes several of the atoms and attributes, updates the documentation (such as steps numbering in inBodyEndTagFormatting) and modifies the spec URLs to https:// Change-Id: I6dfa52785858c1521301b20b1e585e19a08b1e98 Reviewed-on: https://go-review.googlesource.com/6173 Reviewed-by: Nigel Tao <nigeltao@golang.org>
103 lines
2.3 KiB
Go
103 lines
2.3 KiB
Go
// Copyright 2011 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package html
|
|
|
|
// Section 12.2.3.2 of the HTML5 specification says "The following elements
|
|
// have varying levels of special parsing rules".
|
|
// https://html.spec.whatwg.org/multipage/syntax.html#the-stack-of-open-elements
|
|
var isSpecialElementMap = map[string]bool{
|
|
"address": true,
|
|
"applet": true,
|
|
"area": true,
|
|
"article": true,
|
|
"aside": true,
|
|
"base": true,
|
|
"basefont": true,
|
|
"bgsound": true,
|
|
"blockquote": true,
|
|
"body": true,
|
|
"br": true,
|
|
"button": true,
|
|
"caption": true,
|
|
"center": true,
|
|
"col": true,
|
|
"colgroup": true,
|
|
"dd": true,
|
|
"details": true,
|
|
"dir": true,
|
|
"div": true,
|
|
"dl": true,
|
|
"dt": true,
|
|
"embed": true,
|
|
"fieldset": true,
|
|
"figcaption": true,
|
|
"figure": true,
|
|
"footer": true,
|
|
"form": true,
|
|
"frame": true,
|
|
"frameset": true,
|
|
"h1": true,
|
|
"h2": true,
|
|
"h3": true,
|
|
"h4": true,
|
|
"h5": true,
|
|
"h6": true,
|
|
"head": true,
|
|
"header": true,
|
|
"hgroup": true,
|
|
"hr": true,
|
|
"html": true,
|
|
"iframe": true,
|
|
"img": true,
|
|
"input": true,
|
|
"isindex": true,
|
|
"li": true,
|
|
"link": true,
|
|
"listing": true,
|
|
"marquee": true,
|
|
"menu": true,
|
|
"meta": true,
|
|
"nav": true,
|
|
"noembed": true,
|
|
"noframes": true,
|
|
"noscript": true,
|
|
"object": true,
|
|
"ol": true,
|
|
"p": true,
|
|
"param": true,
|
|
"plaintext": true,
|
|
"pre": true,
|
|
"script": true,
|
|
"section": true,
|
|
"select": true,
|
|
"source": true,
|
|
"style": true,
|
|
"summary": true,
|
|
"table": true,
|
|
"tbody": true,
|
|
"td": true,
|
|
"template": true,
|
|
"textarea": true,
|
|
"tfoot": true,
|
|
"th": true,
|
|
"thead": true,
|
|
"title": true,
|
|
"tr": true,
|
|
"track": true,
|
|
"ul": true,
|
|
"wbr": true,
|
|
"xmp": true,
|
|
}
|
|
|
|
func isSpecialElement(element *Node) bool {
|
|
switch element.Namespace {
|
|
case "", "html":
|
|
return isSpecialElementMap[element.Data]
|
|
case "svg":
|
|
return element.Data == "foreignObject"
|
|
}
|
|
return false
|
|
}
|