summaryrefslogtreecommitdiff
path: root/src/edit
diff options
context:
space:
mode:
Diffstat (limited to 'src/edit')
-rw-r--r--src/edit/util.go11
-rw-r--r--src/edit/views.go21
2 files changed, 26 insertions, 6 deletions
diff --git a/src/edit/util.go b/src/edit/util.go
index b6dfde1..5835b10 100644
--- a/src/edit/util.go
+++ b/src/edit/util.go
@@ -5,6 +5,7 @@ import (
"net/http"
"os/exec"
"path"
+ "strings"
)
type exitError exec.ExitError
@@ -34,3 +35,13 @@ func getctype(name string, content []byte) string {
}
return ctype
}
+
+func istext(ctype string) bool {
+ i := strings.Index(ctype, ";")
+ if i == -1 {
+ i = len(ctype)
+ }
+ ctype = strings.TrimSpace(strings.ToLower(ctype[0:i]))
+
+ return strings.HasPrefix(ctype, "text/") || strings.HasSuffix(ctype, "+xml")
+}
diff --git a/src/edit/views.go b/src/edit/views.go
index f9ff618..0998d4a 100644
--- a/src/edit/views.go
+++ b/src/edit/views.go
@@ -3,16 +3,25 @@ package main
import (
"bytes"
"io"
+ "path"
"strings"
- "util"
+ "text/template"
)
+func newTemplate(filenames ...string) *template.Template {
+ return template.Must(template.New(path.Base(filenames[0])).
+ Funcs(template.FuncMap{
+ "istext": istext,
+ }).
+ ParseFiles(filenames...))
+}
+
var (
- tmplPage = util.NewTemplate("got/page.html.got")
- tmplViewTree = util.NewTemplate("got/view_tree.got")
- tmplViewBlob = util.NewTemplate("got/view_blob.got")
- tmplModified = util.NewTemplate("got/modified.got")
- tmplDeleted = util.NewTemplate("got/deleted.got")
+ tmplPage = newTemplate("got/page.html.got")
+ tmplViewTree = newTemplate("got/view_tree.got")
+ tmplViewBlob = newTemplate("got/view_blob.got")
+ tmplModified = newTemplate("got/modified.got")
+ tmplDeleted = newTemplate("got/deleted.got")
)
func renderPage(w io.Writer, title, head, body string) error {