mirror of
https://github.com/golang/go
synced 2024-11-21 21:24:45 -07:00
godoc: skip template wrapping for complete HTML files
demo at http://wreck:8080/doc/ click on go_talk-20100112.html R=gri CC=golang-dev https://golang.org/cl/186137
This commit is contained in:
parent
ae13f43810
commit
1c6c0eee20
@ -18,7 +18,7 @@
|
||||
</tr>
|
||||
{.repeated section @}
|
||||
<tr>
|
||||
<td align="left"><a href="{Name|html}">{Name|html}</a></td>
|
||||
<td align="left"><a href="{Name|html}{@|dir/}">{Name|html}{@|dir/}</a></td>
|
||||
<td></td>
|
||||
<td align="right">{Size|html}</td>
|
||||
<td></td>
|
||||
|
@ -694,6 +694,14 @@ func timeFmt(w io.Writer, x interface{}, format string) {
|
||||
}
|
||||
|
||||
|
||||
// Template formatter for "dir/" format.
|
||||
func dirslashFmt(w io.Writer, x interface{}, format string) {
|
||||
if x.(*os.Dir).IsDirectory() {
|
||||
w.Write([]byte{'/'})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var fmap = template.FormatterMap{
|
||||
"": textFmt,
|
||||
"html": htmlFmt,
|
||||
@ -705,6 +713,7 @@ var fmap = template.FormatterMap{
|
||||
"infoSnippet": infoSnippetFmt,
|
||||
"padding": paddingFmt,
|
||||
"time": timeFmt,
|
||||
"dir/": dirslashFmt,
|
||||
}
|
||||
|
||||
|
||||
@ -802,6 +811,13 @@ func serveHTMLDoc(c *http.Conn, r *http.Request, path string) {
|
||||
return
|
||||
}
|
||||
|
||||
// if it begins with "<!DOCTYPE " assume it is standalone
|
||||
// html that doesn't need the template wrapping.
|
||||
if bytes.HasPrefix(src, strings.Bytes("<!DOCTYPE ")) {
|
||||
c.Write(src)
|
||||
return
|
||||
}
|
||||
|
||||
// if it's the language spec, add tags to EBNF productions
|
||||
if strings.HasSuffix(path, "go_spec.html") {
|
||||
var buf bytes.Buffer
|
||||
@ -917,6 +933,12 @@ func serveDirectory(c *http.Conn, r *http.Request, path string) {
|
||||
return
|
||||
}
|
||||
|
||||
for _, d := range list {
|
||||
if d.IsDirectory() {
|
||||
d.Size = 0
|
||||
}
|
||||
}
|
||||
|
||||
var buf bytes.Buffer
|
||||
if err := dirlistHTML.Execute(list, &buf); err != nil {
|
||||
log.Stderrf("dirlistHTML.Execute: %s", err)
|
||||
|
Loading…
Reference in New Issue
Block a user