Commit 1c6c0eee authored by Russ Cox's avatar Russ Cox

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
parent ae13f438
......@@ -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)
......
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