Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
G
golang
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
go
golang
Commits
66113ac8
Commit
66113ac8
authored
Dec 13, 2011
by
Nigel Tao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
html: update comments to match latest spec.
R=dsymonds CC=golang-dev
https://golang.org/cl/5482054
parent
b9064fb1
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
37 additions
and
39 deletions
+37
-39
const.go
src/pkg/html/const.go
+1
-1
node.go
src/pkg/html/node.go
+1
-1
parse.go
src/pkg/html/parse.go
+34
-36
render.go
src/pkg/html/render.go
+1
-1
No files found.
src/pkg/html/const.go
View file @
66113ac8
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
package
html
package
html
// Section 1
1
.2.3.2 of the HTML5 specification says "The following elements
// Section 1
2
.2.3.2 of the HTML5 specification says "The following elements
// have varying levels of special parsing rules".
// have varying levels of special parsing rules".
// http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#the-stack-of-open-elements
// http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#the-stack-of-open-elements
var
isSpecialElement
=
map
[
string
]
bool
{
var
isSpecialElement
=
map
[
string
]
bool
{
...
...
src/pkg/html/node.go
View file @
66113ac8
...
@@ -17,7 +17,7 @@ const (
...
@@ -17,7 +17,7 @@ const (
scopeMarkerNode
scopeMarkerNode
)
)
// Section 1
1
.2.3.3 says "scope markers are inserted when entering applet
// Section 1
2
.2.3.3 says "scope markers are inserted when entering applet
// elements, buttons, object elements, marquees, table cells, and table
// elements, buttons, object elements, marquees, table cells, and table
// captions, and are used to prevent formatting from 'leaking'".
// captions, and are used to prevent formatting from 'leaking'".
var
scopeMarker
=
Node
{
Type
:
scopeMarkerNode
}
var
scopeMarker
=
Node
{
Type
:
scopeMarkerNode
}
...
...
src/pkg/html/parse.go
View file @
66113ac8
...
@@ -22,12 +22,12 @@ type parser struct {
...
@@ -22,12 +22,12 @@ type parser struct {
hasSelfClosingToken
bool
hasSelfClosingToken
bool
// doc is the document root element.
// doc is the document root element.
doc
*
Node
doc
*
Node
// The stack of open elements (section 1
1
.2.3.2) and active formatting
// The stack of open elements (section 1
2
.2.3.2) and active formatting
// elements (section 1
1
.2.3.3).
// elements (section 1
2
.2.3.3).
oe
,
afe
nodeStack
oe
,
afe
nodeStack
// Element pointers (section 1
1
.2.3.4).
// Element pointers (section 1
2
.2.3.4).
head
,
form
*
Node
head
,
form
*
Node
// Other parsing state flags (section 1
1
.2.3.5).
// Other parsing state flags (section 1
2
.2.3.5).
scripting
,
framesetOK
bool
scripting
,
framesetOK
bool
// im is the current insertion mode.
// im is the current insertion mode.
im
insertionMode
im
insertionMode
...
@@ -35,12 +35,12 @@ type parser struct {
...
@@ -35,12 +35,12 @@ type parser struct {
// or inTableText insertion mode.
// or inTableText insertion mode.
originalIM
insertionMode
originalIM
insertionMode
// fosterParenting is whether new elements should be inserted according to
// fosterParenting is whether new elements should be inserted according to
// the foster parenting rules (section 1
1
.2.5.3).
// the foster parenting rules (section 1
2
.2.5.3).
fosterParenting
bool
fosterParenting
bool
// quirks is whether the parser is operating in "quirks mode."
// quirks is whether the parser is operating in "quirks mode."
quirks
bool
quirks
bool
// context is the context element when parsing an HTML fragment
// context is the context element when parsing an HTML fragment
// (section 1
1
.4).
// (section 1
2
.4).
context
*
Node
context
*
Node
}
}
...
@@ -51,7 +51,7 @@ func (p *parser) top() *Node {
...
@@ -51,7 +51,7 @@ func (p *parser) top() *Node {
return
p
.
doc
return
p
.
doc
}
}
// stopTags for use in popUntil. These come from section 1
1
.2.3.2.
// stopTags for use in popUntil. These come from section 1
2
.2.3.2.
var
(
var
(
defaultScopeStopTags
=
[]
string
{
"applet"
,
"caption"
,
"html"
,
"table"
,
"td"
,
"th"
,
"marquee"
,
"object"
}
defaultScopeStopTags
=
[]
string
{
"applet"
,
"caption"
,
"html"
,
"table"
,
"td"
,
"th"
,
"marquee"
,
"object"
}
listItemScopeStopTags
=
[]
string
{
"applet"
,
"caption"
,
"html"
,
"table"
,
"td"
,
"th"
,
"marquee"
,
"object"
,
"ol"
,
"ul"
}
listItemScopeStopTags
=
[]
string
{
"applet"
,
"caption"
,
"html"
,
"table"
,
"td"
,
"th"
,
"marquee"
,
"object"
,
"ol"
,
"ul"
}
...
@@ -130,7 +130,7 @@ func (p *parser) addChild(n *Node) {
...
@@ -130,7 +130,7 @@ func (p *parser) addChild(n *Node) {
}
}
// fosterParent adds a child node according to the foster parenting rules.
// fosterParent adds a child node according to the foster parenting rules.
// Section 1
1
.2.5.3, "foster parenting".
// Section 1
2
.2.5.3, "foster parenting".
func
(
p
*
parser
)
fosterParent
(
n
*
Node
)
{
func
(
p
*
parser
)
fosterParent
(
n
*
Node
)
{
p
.
fosterParenting
=
false
p
.
fosterParenting
=
false
var
table
,
parent
*
Node
var
table
,
parent
*
Node
...
@@ -199,14 +199,14 @@ func (p *parser) addElement(tag string, attr []Attribute) {
...
@@ -199,14 +199,14 @@ func (p *parser) addElement(tag string, attr []Attribute) {
})
})
}
}
// Section 1
1
.2.3.3.
// Section 1
2
.2.3.3.
func
(
p
*
parser
)
addFormattingElement
(
tag
string
,
attr
[]
Attribute
)
{
func
(
p
*
parser
)
addFormattingElement
(
tag
string
,
attr
[]
Attribute
)
{
p
.
addElement
(
tag
,
attr
)
p
.
addElement
(
tag
,
attr
)
p
.
afe
=
append
(
p
.
afe
,
p
.
top
())
p
.
afe
=
append
(
p
.
afe
,
p
.
top
())
// TODO.
// TODO.
}
}
// Section 1
1
.2.3.3.
// Section 1
2
.2.3.3.
func
(
p
*
parser
)
clearActiveFormattingElements
()
{
func
(
p
*
parser
)
clearActiveFormattingElements
()
{
for
{
for
{
n
:=
p
.
afe
.
pop
()
n
:=
p
.
afe
.
pop
()
...
@@ -216,7 +216,7 @@ func (p *parser) clearActiveFormattingElements() {
...
@@ -216,7 +216,7 @@ func (p *parser) clearActiveFormattingElements() {
}
}
}
}
// Section 1
1
.2.3.3.
// Section 1
2
.2.3.3.
func
(
p
*
parser
)
reconstructActiveFormattingElements
()
{
func
(
p
*
parser
)
reconstructActiveFormattingElements
()
{
n
:=
p
.
afe
.
top
()
n
:=
p
.
afe
.
top
()
if
n
==
nil
{
if
n
==
nil
{
...
@@ -266,12 +266,12 @@ func (p *parser) read() error {
...
@@ -266,12 +266,12 @@ func (p *parser) read() error {
return
nil
return
nil
}
}
// Section 1
1
.2.4.
// Section 1
2
.2.4.
func
(
p
*
parser
)
acknowledgeSelfClosingTag
()
{
func
(
p
*
parser
)
acknowledgeSelfClosingTag
()
{
p
.
hasSelfClosingToken
=
false
p
.
hasSelfClosingToken
=
false
}
}
// An insertion mode (section 1
1
.2.3.1) is the state transition function from
// An insertion mode (section 1
2
.2.3.1) is the state transition function from
// a particular state in the HTML5 parser's state machine. It updates the
// a particular state in the HTML5 parser's state machine. It updates the
// parser's fields depending on parser.tok (where ErrorToken means EOF).
// parser's fields depending on parser.tok (where ErrorToken means EOF).
// It returns whether the token was consumed.
// It returns whether the token was consumed.
...
@@ -279,7 +279,7 @@ type insertionMode func(*parser) bool
...
@@ -279,7 +279,7 @@ type insertionMode func(*parser) bool
// setOriginalIM sets the insertion mode to return to after completing a text or
// setOriginalIM sets the insertion mode to return to after completing a text or
// inTableText insertion mode.
// inTableText insertion mode.
// Section 1
1
.2.3.1, "using the rules for".
// Section 1
2
.2.3.1, "using the rules for".
func
(
p
*
parser
)
setOriginalIM
()
{
func
(
p
*
parser
)
setOriginalIM
()
{
if
p
.
originalIM
!=
nil
{
if
p
.
originalIM
!=
nil
{
panic
(
"html: bad parser state: originalIM was set twice"
)
panic
(
"html: bad parser state: originalIM was set twice"
)
...
@@ -287,7 +287,7 @@ func (p *parser) setOriginalIM() {
...
@@ -287,7 +287,7 @@ func (p *parser) setOriginalIM() {
p
.
originalIM
=
p
.
im
p
.
originalIM
=
p
.
im
}
}
// Section 1
1
.2.3.1, "reset the insertion mode".
// Section 1
2
.2.3.1, "reset the insertion mode".
func
(
p
*
parser
)
resetInsertionMode
()
{
func
(
p
*
parser
)
resetInsertionMode
()
{
for
i
:=
len
(
p
.
oe
)
-
1
;
i
>=
0
;
i
--
{
for
i
:=
len
(
p
.
oe
)
-
1
;
i
>=
0
;
i
--
{
n
:=
p
.
oe
[
i
]
n
:=
p
.
oe
[
i
]
...
@@ -331,7 +331,7 @@ func (p *parser) resetInsertionMode() {
...
@@ -331,7 +331,7 @@ func (p *parser) resetInsertionMode() {
const
whitespace
=
"
\t\r\n\f
"
const
whitespace
=
"
\t\r\n\f
"
// Section 1
1
.2.5.4.1.
// Section 1
2
.2.5.4.1.
func
initialIM
(
p
*
parser
)
bool
{
func
initialIM
(
p
*
parser
)
bool
{
switch
p
.
tok
.
Type
{
switch
p
.
tok
.
Type
{
case
TextToken
:
case
TextToken
:
...
@@ -358,7 +358,7 @@ func initialIM(p *parser) bool {
...
@@ -358,7 +358,7 @@ func initialIM(p *parser) bool {
return
false
return
false
}
}
// Section 1
1
.2.5.4.2.
// Section 1
2
.2.5.4.2.
func
beforeHTMLIM
(
p
*
parser
)
bool
{
func
beforeHTMLIM
(
p
*
parser
)
bool
{
switch
p
.
tok
.
Type
{
switch
p
.
tok
.
Type
{
case
TextToken
:
case
TextToken
:
...
@@ -394,7 +394,7 @@ func beforeHTMLIM(p *parser) bool {
...
@@ -394,7 +394,7 @@ func beforeHTMLIM(p *parser) bool {
return
false
return
false
}
}
// Section 1
1
.2.5.4.3.
// Section 1
2
.2.5.4.3.
func
beforeHeadIM
(
p
*
parser
)
bool
{
func
beforeHeadIM
(
p
*
parser
)
bool
{
var
(
var
(
add
bool
add
bool
...
@@ -443,7 +443,7 @@ func beforeHeadIM(p *parser) bool {
...
@@ -443,7 +443,7 @@ func beforeHeadIM(p *parser) bool {
return
!
implied
return
!
implied
}
}
// Section 1
1
.2.5.4.4.
// Section 1
2
.2.5.4.4.
func
inHeadIM
(
p
*
parser
)
bool
{
func
inHeadIM
(
p
*
parser
)
bool
{
var
(
var
(
pop
bool
pop
bool
...
@@ -510,7 +510,7 @@ func inHeadIM(p *parser) bool {
...
@@ -510,7 +510,7 @@ func inHeadIM(p *parser) bool {
return
true
return
true
}
}
// Section 1
1
.2.5.4.6.
// Section 1
2
.2.5.4.6.
func
afterHeadIM
(
p
*
parser
)
bool
{
func
afterHeadIM
(
p
*
parser
)
bool
{
var
(
var
(
add
bool
add
bool
...
@@ -598,7 +598,7 @@ func copyAttributes(dst *Node, src Token) {
...
@@ -598,7 +598,7 @@ func copyAttributes(dst *Node, src Token) {
}
}
}
}
// Section 1
1
.2.5.4.7.
// Section 1
2
.2.5.4.7.
func
inBodyIM
(
p
*
parser
)
bool
{
func
inBodyIM
(
p
*
parser
)
bool
{
switch
p
.
tok
.
Type
{
switch
p
.
tok
.
Type
{
case
TextToken
:
case
TextToken
:
...
@@ -989,7 +989,7 @@ func (p *parser) inBodyEndTagOther(tag string) {
...
@@ -989,7 +989,7 @@ func (p *parser) inBodyEndTagOther(tag string) {
}
}
}
}
// Section 1
1
.2.5.4.8.
// Section 1
2
.2.5.4.8.
func
textIM
(
p
*
parser
)
bool
{
func
textIM
(
p
*
parser
)
bool
{
switch
p
.
tok
.
Type
{
switch
p
.
tok
.
Type
{
case
ErrorToken
:
case
ErrorToken
:
...
@@ -1005,7 +1005,7 @@ func textIM(p *parser) bool {
...
@@ -1005,7 +1005,7 @@ func textIM(p *parser) bool {
return
p
.
tok
.
Type
==
EndTagToken
return
p
.
tok
.
Type
==
EndTagToken
}
}
// Section 1
1
.2.5.4.9.
// Section 1
2
.2.5.4.9.
func
inTableIM
(
p
*
parser
)
bool
{
func
inTableIM
(
p
*
parser
)
bool
{
switch
p
.
tok
.
Type
{
switch
p
.
tok
.
Type
{
case
ErrorToken
:
case
ErrorToken
:
...
@@ -1094,7 +1094,7 @@ func (p *parser) clearStackToContext(stopTags []string) {
...
@@ -1094,7 +1094,7 @@ func (p *parser) clearStackToContext(stopTags []string) {
}
}
}
}
// Section 1
1
.2.5.4.11.
// Section 1
2
.2.5.4.11.
func
inCaptionIM
(
p
*
parser
)
bool
{
func
inCaptionIM
(
p
*
parser
)
bool
{
switch
p
.
tok
.
Type
{
switch
p
.
tok
.
Type
{
case
StartTagToken
:
case
StartTagToken
:
...
@@ -1134,7 +1134,7 @@ func inCaptionIM(p *parser) bool {
...
@@ -1134,7 +1134,7 @@ func inCaptionIM(p *parser) bool {
return
inBodyIM
(
p
)
return
inBodyIM
(
p
)
}
}
// Section 1
1
.2.5.4.12.
// Section 1
2
.2.5.4.12.
func
inColumnGroupIM
(
p
*
parser
)
bool
{
func
inColumnGroupIM
(
p
*
parser
)
bool
{
switch
p
.
tok
.
Type
{
switch
p
.
tok
.
Type
{
case
CommentToken
:
case
CommentToken
:
...
@@ -1176,7 +1176,7 @@ func inColumnGroupIM(p *parser) bool {
...
@@ -1176,7 +1176,7 @@ func inColumnGroupIM(p *parser) bool {
return
false
return
false
}
}
// Section 1
1
.2.5.4.13.
// Section 1
2
.2.5.4.13.
func
inTableBodyIM
(
p
*
parser
)
bool
{
func
inTableBodyIM
(
p
*
parser
)
bool
{
var
(
var
(
add
bool
add
bool
...
@@ -1232,7 +1232,7 @@ func inTableBodyIM(p *parser) bool {
...
@@ -1232,7 +1232,7 @@ func inTableBodyIM(p *parser) bool {
return
inTableIM
(
p
)
return
inTableIM
(
p
)
}
}
// Section 1
1
.2.5.4.14.
// Section 1
2
.2.5.4.14.
func
inRowIM
(
p
*
parser
)
bool
{
func
inRowIM
(
p
*
parser
)
bool
{
switch
p
.
tok
.
Type
{
switch
p
.
tok
.
Type
{
case
ErrorToken
:
case
ErrorToken
:
...
@@ -1291,7 +1291,7 @@ func inRowIM(p *parser) bool {
...
@@ -1291,7 +1291,7 @@ func inRowIM(p *parser) bool {
return
inTableIM
(
p
)
return
inTableIM
(
p
)
}
}
// Section 1
1
.2.5.4.15.
// Section 1
2
.2.5.4.15.
func
inCellIM
(
p
*
parser
)
bool
{
func
inCellIM
(
p
*
parser
)
bool
{
var
(
var
(
closeTheCellAndReprocess
bool
closeTheCellAndReprocess
bool
...
@@ -1336,7 +1336,7 @@ func inCellIM(p *parser) bool {
...
@@ -1336,7 +1336,7 @@ func inCellIM(p *parser) bool {
return
inBodyIM
(
p
)
return
inBodyIM
(
p
)
}
}
// Section 1
1
.2.5.4.16.
// Section 1
2
.2.5.4.16.
func
inSelectIM
(
p
*
parser
)
bool
{
func
inSelectIM
(
p
*
parser
)
bool
{
endSelect
:=
false
endSelect
:=
false
switch
p
.
tok
.
Type
{
switch
p
.
tok
.
Type
{
...
@@ -1413,7 +1413,7 @@ func inSelectIM(p *parser) bool {
...
@@ -1413,7 +1413,7 @@ func inSelectIM(p *parser) bool {
return
true
return
true
}
}
// Section 1
1
.2.5.4.18.
// Section 1
2
.2.5.4.18.
func
afterBodyIM
(
p
*
parser
)
bool
{
func
afterBodyIM
(
p
*
parser
)
bool
{
switch
p
.
tok
.
Type
{
switch
p
.
tok
.
Type
{
case
ErrorToken
:
case
ErrorToken
:
...
@@ -1443,7 +1443,7 @@ func afterBodyIM(p *parser) bool {
...
@@ -1443,7 +1443,7 @@ func afterBodyIM(p *parser) bool {
return
false
return
false
}
}
// Section 1
1
.2.5.4.19.
// Section 1
2
.2.5.4.19.
func
inFramesetIM
(
p
*
parser
)
bool
{
func
inFramesetIM
(
p
*
parser
)
bool
{
switch
p
.
tok
.
Type
{
switch
p
.
tok
.
Type
{
case
CommentToken
:
case
CommentToken
:
...
@@ -1493,7 +1493,7 @@ func inFramesetIM(p *parser) bool {
...
@@ -1493,7 +1493,7 @@ func inFramesetIM(p *parser) bool {
return
true
return
true
}
}
// Section 1
1
.2.5.4.20.
// Section 1
2
.2.5.4.20.
func
afterFramesetIM
(
p
*
parser
)
bool
{
func
afterFramesetIM
(
p
*
parser
)
bool
{
switch
p
.
tok
.
Type
{
switch
p
.
tok
.
Type
{
case
CommentToken
:
case
CommentToken
:
...
@@ -1532,7 +1532,7 @@ func afterFramesetIM(p *parser) bool {
...
@@ -1532,7 +1532,7 @@ func afterFramesetIM(p *parser) bool {
return
true
return
true
}
}
// Section 1
1
.2.5.4.21.
// Section 1
2
.2.5.4.21.
func
afterAfterBodyIM
(
p
*
parser
)
bool
{
func
afterAfterBodyIM
(
p
*
parser
)
bool
{
switch
p
.
tok
.
Type
{
switch
p
.
tok
.
Type
{
case
ErrorToken
:
case
ErrorToken
:
...
@@ -1555,7 +1555,7 @@ func afterAfterBodyIM(p *parser) bool {
...
@@ -1555,7 +1555,7 @@ func afterAfterBodyIM(p *parser) bool {
return
false
return
false
}
}
// Section 1
1
.2.5.4.22.
// Section 1
2
.2.5.4.22.
func
afterAfterFramesetIM
(
p
*
parser
)
bool
{
func
afterAfterFramesetIM
(
p
*
parser
)
bool
{
switch
p
.
tok
.
Type
{
switch
p
.
tok
.
Type
{
case
CommentToken
:
case
CommentToken
:
...
@@ -1576,8 +1576,6 @@ func afterAfterFramesetIM(p *parser) bool {
...
@@ -1576,8 +1576,6 @@ func afterAfterFramesetIM(p *parser) bool {
return
true
return
true
}
}
// TODO: fix up the other IM's section numbers to match the latest spec.
// Section 12.2.5.5.
// Section 12.2.5.5.
func
inForeignContentIM
(
p
*
parser
)
bool
{
func
inForeignContentIM
(
p
*
parser
)
bool
{
switch
p
.
tok
.
Type
{
switch
p
.
tok
.
Type
{
...
...
src/pkg/html/render.go
View file @
66113ac8
...
@@ -247,7 +247,7 @@ func writeQuoted(w writer, s string) error {
...
@@ -247,7 +247,7 @@ func writeQuoted(w writer, s string) error {
return
nil
return
nil
}
}
// Section 1
3
.1.2, "Elements", gives this list of void elements. Void elements
// Section 1
2
.1.2, "Elements", gives this list of void elements. Void elements
// are those that can't have any contents.
// are those that can't have any contents.
var
voidElements
=
map
[
string
]
bool
{
var
voidElements
=
map
[
string
]
bool
{
"area"
:
true
,
"area"
:
true
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment