summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@sbcglobal.net>2016-11-02 23:37:00 -0400
committerLuke Shumaker <lukeshu@sbcglobal.net>2016-11-02 23:37:00 -0400
commit9c4b8766cbdc2a4c63a03292b58cf35d981e1321 (patch)
treeaa84619601ff14e7ea86b1147827f24a6fa82fa0 /src
parent85db279e33804c118b019c5f1e7666798df3e1f5 (diff)
simplemde
Diffstat (limited to 'src')
-rw-r--r--src/edit/main.go5
-rw-r--r--src/edit/util.go7
-rw-r--r--src/edit/views.go11
3 files changed, 16 insertions, 7 deletions
diff --git a/src/edit/main.go b/src/edit/main.go
index a7ec7bd..66e9a36 100644
--- a/src/edit/main.go
+++ b/src/edit/main.go
@@ -9,6 +9,7 @@ import (
func ServeIndex(out http.ResponseWriter, in *http.Request) {
if in.URL.Path != "/" {
http.NotFound(out, in)
+ return
}
http.Redirect(out, in, "/files/", http.StatusMovedPermanently)
}
@@ -16,9 +17,9 @@ func ServeIndex(out http.ResponseWriter, in *http.Request) {
func main() {
socket, err := util.StreamListener(os.Args[1], os.Args[2])
errcheck(err)
- errcheck(os.Chdir("/srv/http/edit.team4272.com/www.git"))
+ errcheck(os.Setenv("GIT_DIR", "/srv/http/edit.team4272.com/www.git"))
http.Handle("/", util.SaneHTTPHandler{http.HandlerFunc(ServeIndex)})
- http.Handle("/static/", util.SaneHTTPHandler{http.FileServer(http.Dir("static"))})
+ http.Handle("/static/", util.SaneHTTPHandler{http.StripPrefix("/static", http.FileServer(http.Dir("static")))})
http.Handle("/files/", util.SaneHTTPHandler{http.StripPrefix("/files", http.HandlerFunc(ServeGit))})
errcheck(http.Serve(socket, nil))
}
diff --git a/src/edit/util.go b/src/edit/util.go
index 5835b10..b1950ed 100644
--- a/src/edit/util.go
+++ b/src/edit/util.go
@@ -33,15 +33,16 @@ func getctype(name string, content []byte) string {
if ctype == "" {
ctype = http.DetectContentType(content)
}
- 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 ctype
+}
+
+func istext(ctype string) bool {
return strings.HasPrefix(ctype, "text/") || strings.HasSuffix(ctype, "+xml")
}
diff --git a/src/edit/views.go b/src/edit/views.go
index 0998d4a..1d3176d 100644
--- a/src/edit/views.go
+++ b/src/edit/views.go
@@ -65,18 +65,25 @@ func renderViewBlob(w io.Writer, upath string, file GitFile) error {
if err != nil {
return err
}
+ ctype := getctype(upath, content)
// Component render
var buf bytes.Buffer
err = tmplViewBlob.Execute(&buf, map[string]string{
"path": upath,
- "ctype": getctype(upath, content),
+ "ctype": ctype,
"content": string(content),
})
if err != nil {
return err
}
+ head := ""
+ if ctype == "text/markdown" {
+ head += "<link rel=\"stylesheet\" href=\"/static/font-awesome/css/font-awesome.min.css\">\n"
+ head += "<link rel=\"stylesheet\" href=\"/static/simplemde/dist/simplemde.min.css\">\n"
+ head += "<script src=\"/static/simplemde/dist/simplemde.min.js\"></script>\n"
+ }
// Page render
- return renderPage(w, upath, "", buf.String())
+ return renderPage(w, upath, head, buf.String())
}
func renderModified(w io.Writer, upath string) error {