1
0
mirror of https://github.com/golang/go synced 2024-11-19 21:04:43 -07:00

go/doc/headscan: update script to count headings with an ID attribute

Fixes script used to sanity-check the heading-detection heuristic of go/doc.
Fixes #8467.

LGTM=gri
R=golang-codereviews, gobot, gri
CC=golang-codereviews
https://golang.org/cl/128720043
This commit is contained in:
Evan Kroske 2014-08-30 10:27:36 -07:00 committed by Robert Griesemer
parent cac006ae5a
commit f4cbaa38ae

View File

@ -24,6 +24,7 @@ import (
"go/token"
"os"
"path/filepath"
"regexp"
"runtime"
"strings"
)
@ -33,10 +34,10 @@ var (
verbose = flag.Bool("v", false, "verbose mode")
)
const (
html_h = "<h3>"
html_endh = "</h3>\n"
)
// ToHTML in comment.go assigns a (possibly blank) ID to each heading
var html_h = regexp.MustCompile(`<h3 id="[^"]*">`)
const html_endh = "</h3>\n"
func isGoFile(fi os.FileInfo) bool {
return strings.HasSuffix(fi.Name(), ".go") &&
@ -47,11 +48,11 @@ func appendHeadings(list []string, comment string) []string {
var buf bytes.Buffer
doc.ToHTML(&buf, comment, nil)
for s := buf.String(); ; {
i := strings.Index(s, html_h)
if i < 0 {
loc := html_h.FindStringIndex(s)
if len(loc) == 0 {
break
}
i += len(html_h)
i := loc[1]
j := strings.Index(s, html_endh)
if j < 0 {
list = append(list, s[i:]) // incorrect HTML