Commit f4cbaa38 authored by Evan Kroske's avatar Evan Kroske Committed by Robert Griesemer

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
parent cac006ae
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment