mirror of
https://github.com/golang/go
synced 2024-11-25 07:17:56 -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>
|
</tr>
|
||||||
{.repeated section @}
|
{.repeated section @}
|
||||||
<tr>
|
<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></td>
|
||||||
<td align="right">{Size|html}</td>
|
<td align="right">{Size|html}</td>
|
||||||
<td></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{
|
var fmap = template.FormatterMap{
|
||||||
"": textFmt,
|
"": textFmt,
|
||||||
"html": htmlFmt,
|
"html": htmlFmt,
|
||||||
@ -705,6 +713,7 @@ var fmap = template.FormatterMap{
|
|||||||
"infoSnippet": infoSnippetFmt,
|
"infoSnippet": infoSnippetFmt,
|
||||||
"padding": paddingFmt,
|
"padding": paddingFmt,
|
||||||
"time": timeFmt,
|
"time": timeFmt,
|
||||||
|
"dir/": dirslashFmt,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -802,6 +811,13 @@ func serveHTMLDoc(c *http.Conn, r *http.Request, path string) {
|
|||||||
return
|
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 it's the language spec, add tags to EBNF productions
|
||||||
if strings.HasSuffix(path, "go_spec.html") {
|
if strings.HasSuffix(path, "go_spec.html") {
|
||||||
var buf bytes.Buffer
|
var buf bytes.Buffer
|
||||||
@ -917,6 +933,12 @@ func serveDirectory(c *http.Conn, r *http.Request, path string) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for _, d := range list {
|
||||||
|
if d.IsDirectory() {
|
||||||
|
d.Size = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var buf bytes.Buffer
|
var buf bytes.Buffer
|
||||||
if err := dirlistHTML.Execute(list, &buf); err != nil {
|
if err := dirlistHTML.Execute(list, &buf); err != nil {
|
||||||
log.Stderrf("dirlistHTML.Execute: %s", err)
|
log.Stderrf("dirlistHTML.Execute: %s", err)
|
||||||
|
Loading…
Reference in New Issue
Block a user