mirror of
https://github.com/golang/go
synced 2024-11-21 17:04:42 -07:00
go/doc: exclude lines ending in ':' from possible headings
This is a more conservative approach to heading detection and removes 11 headings from the current repository (several in fmt). The current headscan output is: /home/gri/go3/src/cmd/goinstall (package documentation) Remote Repositories The GOPATH Environment Variable /home/gri/go3/src/pkg/exp/gotype (package documentation) Examples /home/gri/go3/src/pkg/html/template (package template) Introduction Contexts Errors A fuller picture Contexts Typed Strings Security Model /home/gri/go3/src/pkg/text/template (package template) Actions Arguments Pipelines Variables Examples Functions Associated templates Nested template definitions 18 headings found R=golang-dev, adg, rsc CC=golang-dev https://golang.org/cl/5437105
This commit is contained in:
parent
1e5aecf6ce
commit
6ea3a268b6
@ -241,8 +241,8 @@ func unindent(block []string) {
|
||||
}
|
||||
}
|
||||
|
||||
// heading returns the (possibly trimmed) line if it passes as a valid section
|
||||
// heading; otherwise it returns the empty string.
|
||||
// heading returns the trimmed line if it passes as a section heading;
|
||||
// otherwise it returns the empty string.
|
||||
func heading(line string) string {
|
||||
line = strings.TrimSpace(line)
|
||||
if len(line) == 0 {
|
||||
@ -255,17 +255,12 @@ func heading(line string) string {
|
||||
return ""
|
||||
}
|
||||
|
||||
// it must end in a letter, digit or ':'
|
||||
// it must end in a letter or digit:
|
||||
r, _ = utf8.DecodeLastRuneInString(line)
|
||||
if !unicode.IsLetter(r) && !unicode.IsDigit(r) && r != ':' {
|
||||
if !unicode.IsLetter(r) && !unicode.IsDigit(r) {
|
||||
return ""
|
||||
}
|
||||
|
||||
// strip trailing ':', if any
|
||||
if r == ':' {
|
||||
line = line[0 : len(line)-1]
|
||||
}
|
||||
|
||||
// exclude lines with illegal characters
|
||||
if strings.IndexAny(line, ",.;:!?+*/=()[]{}_^°&§~%#@<\">\\") >= 0 {
|
||||
return ""
|
||||
|
@ -18,7 +18,8 @@ var headingTests = []struct {
|
||||
{"Foo 42", true},
|
||||
{"", false},
|
||||
{"section", false},
|
||||
{"A typical usage:", true},
|
||||
{"A typical usage:", false},
|
||||
{"This code:", false},
|
||||
{"δ is Greek", false},
|
||||
{"Foo §", false},
|
||||
{"Fermat's Last Sentence", true},
|
||||
@ -26,7 +27,7 @@ var headingTests = []struct {
|
||||
{"'sX", false},
|
||||
{"Ted 'Too' Bar", false},
|
||||
{"Use n+m", false},
|
||||
{"Scanning:", true},
|
||||
{"Scanning:", false},
|
||||
{"N:M", false},
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user