1
0
mirror of https://github.com/golang/go synced 2024-11-25 02:37:59 -07:00

godoc: replace servePage's positional argument list

R=golang-dev, adg, bradfitz
CC=golang-dev
https://golang.org/cl/5869050
This commit is contained in:
Robert Griesemer 2012-03-30 10:42:56 -07:00
parent 373f1a95b0
commit 5b5b42ea84
4 changed files with 64 additions and 44 deletions

View File

@ -45,8 +45,8 @@
Do not delete this <div>. */}} Do not delete this <div>. */}}
<div id="nav"></div> <div id="nav"></div>
{{/* Content is HTML-escaped elsewhere */}} {{/* Body is HTML-escaped elsewhere */}}
{{printf "%s" .Content}} {{printf "%s" .Body}}
</div> </div>

View File

@ -68,8 +68,11 @@ func codewalk(w http.ResponseWriter, r *http.Request) {
return return
} }
b := applyTemplate(codewalkHTML, "codewalk", cw) servePage(w, Page{
servePage(w, cw.Title, "Codewalk: "+cw.Title, "", "", b) Title: "Codewalk: " + cw.Title,
Tabtitle: cw.Title,
Body: applyTemplate(codewalkHTML, "codewalk", cw),
})
} }
// A Codewalk represents a single codewalk read from an XML file. // A Codewalk represents a single codewalk read from an XML file.
@ -199,8 +202,10 @@ func codewalkDir(w http.ResponseWriter, r *http.Request, relpath, abspath string
} }
} }
b := applyTemplate(codewalkdirHTML, "codewalkdir", v) servePage(w, Page{
servePage(w, "", "Codewalks", "", "", b) Title: "Codewalks",
Body: applyTemplate(codewalkdirHTML, "codewalkdir", v),
})
} }
// codewalkFileprint serves requests with ?fileprint=f&lo=lo&hi=hi. // codewalkFileprint serves requests with ?fileprint=f&lo=lo&hi=hi.

View File

@ -538,31 +538,26 @@ func readTemplates() {
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// Generic HTML wrapper // Generic HTML wrapper
func servePage(w http.ResponseWriter, tabtitle, title, subtitle, query string, content []byte) { // Page describes the contents of the top-level godoc webpage.
if tabtitle == "" { type Page struct {
tabtitle = title Title string
} Tabtitle string
d := struct { Subtitle string
Tabtitle string Query string
Title string Body []byte
Subtitle string
SearchBox bool
Query string
Version string
Menu []byte
Content []byte
}{
tabtitle,
title,
subtitle,
*indexEnabled,
query,
runtime.Version(),
nil,
content,
}
if err := godocHTML.Execute(w, &d); err != nil { // filled in by servePage
SearchBox bool
Version string
}
func servePage(w http.ResponseWriter, page Page) {
if page.Tabtitle == "" {
page.Tabtitle = page.Title
}
page.SearchBox = *indexEnabled
page.Version = runtime.Version()
if err := godocHTML.Execute(w, page); err != nil {
log.Printf("godocHTML.Execute: %s", err) log.Printf("godocHTML.Execute: %s", err)
} }
} }
@ -627,7 +622,11 @@ func serveHTMLDoc(w http.ResponseWriter, r *http.Request, abspath, relpath strin
src = buf.Bytes() src = buf.Bytes()
} }
servePage(w, "", meta.Title, meta.Subtitle, "", src) servePage(w, Page{
Title: meta.Title,
Subtitle: meta.Subtitle,
Body: src,
})
} }
func applyTemplate(t *template.Template, name string, data interface{}) []byte { func applyTemplate(t *template.Template, name string, data interface{}) []byte {
@ -663,7 +662,11 @@ func serveTextFile(w http.ResponseWriter, r *http.Request, abspath, relpath, tit
FormatText(&buf, src, 1, pathpkg.Ext(abspath) == ".go", r.FormValue("h"), rangeSelection(r.FormValue("s"))) FormatText(&buf, src, 1, pathpkg.Ext(abspath) == ".go", r.FormValue("h"), rangeSelection(r.FormValue("s")))
buf.WriteString("</pre>") buf.WriteString("</pre>")
servePage(w, relpath, title+" "+relpath, "", "", buf.Bytes()) servePage(w, Page{
Title: title + " " + relpath,
Tabtitle: relpath,
Body: buf.Bytes(),
})
} }
func serveDirectory(w http.ResponseWriter, r *http.Request, abspath, relpath string) { func serveDirectory(w http.ResponseWriter, r *http.Request, abspath, relpath string) {
@ -677,8 +680,11 @@ func serveDirectory(w http.ResponseWriter, r *http.Request, abspath, relpath str
return return
} }
contents := applyTemplate(dirlistHTML, "dirlistHTML", list) servePage(w, Page{
servePage(w, relpath, "Directory "+relpath, "", "", contents) Title: "Directory " + relpath,
Tabtitle: relpath,
Body: applyTemplate(dirlistHTML, "dirlistHTML", list),
})
} }
func serveFile(w http.ResponseWriter, r *http.Request) { func serveFile(w http.ResponseWriter, r *http.Request) {
@ -1065,8 +1071,7 @@ func (h *docServer) ServeHTTP(w http.ResponseWriter, r *http.Request) {
} }
if mode&noHtml != 0 { if mode&noHtml != 0 {
contents := applyTemplate(packageText, "packageText", info) serveText(w, applyTemplate(packageText, "packageText", info))
serveText(w, contents)
return return
} }
@ -1103,8 +1108,12 @@ func (h *docServer) ServeHTTP(w http.ResponseWriter, r *http.Request) {
tabtitle = "Commands" tabtitle = "Commands"
} }
contents := applyTemplate(packageHTML, "packageHTML", info) servePage(w, Page{
servePage(w, tabtitle, title, subtitle, "", contents) Title: title,
Tabtitle: tabtitle,
Subtitle: subtitle,
Body: applyTemplate(packageHTML, "packageHTML", info),
})
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@ -1181,8 +1190,7 @@ func search(w http.ResponseWriter, r *http.Request) {
result := lookup(query) result := lookup(query)
if getPageInfoMode(r)&noHtml != 0 { if getPageInfoMode(r)&noHtml != 0 {
contents := applyTemplate(searchText, "searchText", result) serveText(w, applyTemplate(searchText, "searchText", result))
serveText(w, contents)
return return
} }
@ -1193,8 +1201,12 @@ func search(w http.ResponseWriter, r *http.Request) {
title = fmt.Sprintf(`No results found for query %q`, query) title = fmt.Sprintf(`No results found for query %q`, query)
} }
contents := applyTemplate(searchHTML, "searchHTML", result) servePage(w, Page{
servePage(w, query, title, "", query, contents) Title: title,
Tabtitle: query,
Query: query,
Body: applyTemplate(searchHTML, "searchHTML", result),
})
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@ -71,9 +71,12 @@ var (
) )
func serveError(w http.ResponseWriter, r *http.Request, relpath string, err error) { func serveError(w http.ResponseWriter, r *http.Request, relpath string, err error) {
contents := applyTemplate(errorHTML, "errorHTML", err) // err may contain an absolute path!
w.WriteHeader(http.StatusNotFound) w.WriteHeader(http.StatusNotFound)
servePage(w, relpath, "File "+relpath, "", "", contents) servePage(w, Page{
Title: "File " + relpath,
Subtitle: relpath,
Body: applyTemplate(errorHTML, "errorHTML", err), // err may contain an absolute path!
})
} }
func usage() { func usage() {