From c79e605b60040c4c0e5c792fa447487c2b8ae246 Mon Sep 17 00:00:00 2001 From: horus_arch Date: Mon, 15 Jun 2015 13:38:47 +0200 Subject: Use flex to extract html. Icono-font used for icons. --- template.go | 224 ------------------------------------------------------------ 1 file changed, 224 deletions(-) delete mode 100644 template.go (limited to 'template.go') diff --git a/template.go b/template.go deleted file mode 100644 index 7f9a134..0000000 --- a/template.go +++ /dev/null @@ -1,224 +0,0 @@ -package main - -import ( - "html/template" - "log" - "net/http" - "strings" -) - -type TemplateHandler struct { - handler http.Handler -} - -func (t *TemplateHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - - w.Header().Set("Server", "uhttpd") - - // We use our custom handler to prettify directories. Files are served via default. - if !strings.HasSuffix(r.URL.Path, "/") { - t.handler.ServeHTTP(w, r) - return - } - - rec := NewRecorder() - - defer rec.Body.Reset() - - // passing the recorder instead of the real ResponseWriter - t.handler.ServeHTTP(rec, r) - - // let the standard lib handle all the caching - if rec.Code > 300 && rec.Code < 400 { - log.Println("Code: ", rec.Code) - t.handler.ServeHTTP(w, r) - return - } - - // we copy the original headers first - for k, v := range rec.Header() { - w.Header()[k] = v - } - - // not found - if rec.Code == 404 { - w.Header().Set("Content-Type", "text/html") - w.WriteHeader(404) - tmpl := template.New("404") - tmpl, err := tmpl.Parse(get404()) - if err != nil { - log.Println(err.Error()) - w.WriteHeader(500) - w.Write([]byte(err.Error())) - return - } - - err = tmpl.Execute(w, struct{ URL string }{URL: r.URL.Path}) - if err != nil { - log.Println(err.Error()) - w.WriteHeader(500) - w.Write([]byte(err.Error())) - return - } - return - } - - // we serve a file instead of a html page - if !strings.Contains(w.Header().Get("Content-Type"), "text/html") { - w.Write(rec.Body.Bytes()) - return - } - - data := rec.Body.String() - - // we serve the directoy page - if strings.HasPrefix(data, "
") {
- execTemplate(w, r, data)
- } else {
- w.Write(rec.Body.Bytes())
- }
-}
-
-func execTemplate(w http.ResponseWriter, r *http.Request, data string) {
- data = strings.Replace(data, "", "", 1)
- data = strings.Replace(data, "
", "", 1)
- data = strings.Replace(data, "", "
", -1)
-
- tmpl := template.New("page")
- tmpl, err := tmpl.Parse(getTemplate())
- if err != nil {
- log.Println(err.Error())
- w.WriteHeader(500)
- w.Write([]byte(err.Error()))
- return
- }
-
- err = tmpl.Execute(w, struct {
- Data template.HTML
- URL string
- }{Data: template.HTML(data), URL: r.URL.Path})
- if err != nil {
- log.Println(err)
- }
-
-}
-
-func getTemplate() string {
- return `
-
-
-
- {{.URL}}
-
-
-
-
-
-
-
-
-
- {{.URL}}
-
- {{if ne .URL "/"}}
- .. (up a dir)
- {{end}}
- {{.Data}}
-
-
-
-
-
-
-`
-}
-
-func get404() string {
- return `
-
-
-
- Not Found - {{.URL}}
-
-
-
-
-
-
-
-
-
-`
-}
-
-func getUpload() string {
- return `
-
-
-
- Upload Form
-
-
-
-
-
-
-
- Upload Form
-
-
-
-
-
-`
-}
-
-func getUploaded() string {
- return `
-
-
-
- Uploaded {{.File}}
-
-
-
-
-
-
-
-
-
-`
-}
--
cgit v1.2.3