From 5e1e95852821e138caf20c3f8ee23e3941e42bbc Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Tue, 15 Nov 2016 00:16:06 -0500 Subject: better progressive enhancement of editor --- src/edit/views.go | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) (limited to 'src/edit/views.go') diff --git a/src/edit/views.go b/src/edit/views.go index 1d3176d..a2890d4 100644 --- a/src/edit/views.go +++ b/src/edit/views.go @@ -1,6 +1,7 @@ package main import ( + "fmt" "bytes" "io" "path" @@ -24,11 +25,12 @@ var ( tmplDeleted = newTemplate("got/deleted.got") ) -func renderPage(w io.Writer, title, head, body string) error { +func renderPage(w io.Writer, title, head, body, tail string) error { return tmplPage.Execute(w, map[string]string{ "title": title, "head": head, "body": body, + "tail": tail, }) } @@ -47,8 +49,8 @@ func renderViewTree(w io.Writer, upath string, tree GitTree) error { } // Component Render - var buf bytes.Buffer - err := tmplViewTree.Execute(&buf, map[string]interface{}{ + var body bytes.Buffer + err := tmplViewTree.Execute(&body, map[string]interface{}{ "path": upath, "files": files, }) @@ -56,7 +58,7 @@ func renderViewTree(w io.Writer, upath string, tree GitTree) error { return err } // Page render - return renderPage(w, upath, "", buf.String()) + return renderPage(w, upath, "", body.String(), "") } func renderViewBlob(w io.Writer, upath string, file GitFile) error { @@ -67,8 +69,8 @@ func renderViewBlob(w io.Writer, upath string, file GitFile) error { } ctype := getctype(upath, content) // Component render - var buf bytes.Buffer - err = tmplViewBlob.Execute(&buf, map[string]string{ + var body bytes.Buffer + err = tmplViewBlob.Execute(&body, map[string]string{ "path": upath, "ctype": ctype, "content": string(content), @@ -76,38 +78,36 @@ func renderViewBlob(w io.Writer, upath string, file GitFile) error { if err != nil { return err } - head := "" - if ctype == "text/markdown" { - head += "\n" - head += "\n" - head += "\n" - } + + head, tail := getEnhancer(ctype) + head = fmt.Sprintf("\n%s", template.JSEscapeString(ctype), head); + // Page render - return renderPage(w, upath, head, buf.String()) + return renderPage(w, upath, head, body.String(), tail) } func renderModified(w io.Writer, upath string) error { // Component render - var buf bytes.Buffer - err := tmplModified.Execute(&buf, map[string]string{ + var body bytes.Buffer + err := tmplModified.Execute(&body, map[string]string{ "path": upath, }) if err != nil { return err } // Page render - return renderPage(w, upath, "", buf.String()) + return renderPage(w, upath, "", body.String(), "") } func renderDeleted(w io.Writer, upath string) error { // Component render - var buf bytes.Buffer - err := tmplDeleted.Execute(&buf, map[string]string{ + var body bytes.Buffer + err := tmplDeleted.Execute(&body, map[string]string{ "path": upath, }) if err != nil { return err } // Page render - return renderPage(w, upath, "", buf.String()) + return renderPage(w, upath, "", body.String(), "") } -- cgit v1.2.3