diff --git a/TODO b/TODO old mode 100644 new mode 100755 diff --git a/config/config.go b/config/config.go old mode 100644 new mode 100755 diff --git a/main.go b/main.go old mode 100644 new mode 100755 diff --git a/server/dir.go b/server/dir.go old mode 100644 new mode 100755 diff --git a/server/dir_test.go b/server/dir_test.go old mode 100644 new mode 100755 diff --git a/server/dirs.go b/server/dirs.go old mode 100644 new mode 100755 diff --git a/server/dirs_test.go b/server/dirs_test.go old mode 100644 new mode 100755 diff --git a/server/edit.go b/server/edit.go new file mode 100755 index 0000000..ddecd98 --- /dev/null +++ b/server/edit.go @@ -0,0 +1,43 @@ +package server + +import ( + "fmt" + "io/ioutil" + "net/http" + "strings" +) + +func (s *Server) edit(w http.ResponseWriter, r *http.Request) { + p := NewPathFromURL(r.URL.Path) + if p.IsDir() { + http.NotFound(w, r) + return + } + head(w, r) + editHead(w, p) + editFile(w, p) + foot(w, r) +} + +func editHead(w http.ResponseWriter, p Path) { + fmt.Fprintln(w, h2(p.MultiLink())) +} + +func editFile(w http.ResponseWriter, p Path) { + href := p.HREF + href = strings.TrimPrefix(href, "/") + hrefs := strings.SplitN(href, "/", 2) + href = hrefs[0] + if len(hrefs) > 1 { + href = hrefs[1] + } + b, _ := ioutil.ReadFile(p.Local) + fmt.Fprintf(w, ` +
+ + +
+ +
+ `, href, b) +} diff --git a/server/edit_test.go b/server/edit_test.go new file mode 100755 index 0000000..abb4e43 --- /dev/null +++ b/server/edit_test.go @@ -0,0 +1 @@ +package server diff --git a/server/file.go b/server/file.go old mode 100644 new mode 100755 diff --git a/server/file_test.go b/server/file_test.go old mode 100644 new mode 100755 diff --git a/server/files.go b/server/files.go old mode 100644 new mode 100755 diff --git a/server/files_test.go b/server/files_test.go old mode 100644 new mode 100755 diff --git a/server/notes.go b/server/notes.go old mode 100644 new mode 100755 diff --git a/server/notes_test.go b/server/notes_test.go old mode 100644 new mode 100755 diff --git a/server/path.go b/server/path.go old mode 100644 new mode 100755 diff --git a/server/path_test.go b/server/path_test.go old mode 100644 new mode 100755 diff --git a/server/paths.go b/server/paths.go old mode 100644 new mode 100755 diff --git a/server/paths_test.go b/server/paths_test.go old mode 100644 new mode 100755 diff --git a/server/routes.go b/server/routes.go old mode 100644 new mode 100755 index 6907f42..3ce585f --- a/server/routes.go +++ b/server/routes.go @@ -16,6 +16,10 @@ func (s *Server) Routes() error { path: fmt.Sprintf("notes/%s%s", wildcard, wildcard), handler: s.notes, }, + { + path: fmt.Sprintf("edit/%s%s", wildcard, wildcard), + handler: s.edit, + }, } for _, endpoint := range endpoints { diff --git a/server/routes_test.go b/server/routes_test.go old mode 100644 new mode 100755 index 5393412..cd97f06 --- a/server/routes_test.go +++ b/server/routes_test.go @@ -27,12 +27,34 @@ func TestServerNotes(t *testing.T) { t.Logf("serve %s: %s", r.URL.Path, w.Body.Bytes()) w.Body.Reset() - r.URL.Path = "/serve/" + r.URL.Path = "/notes/" s.notes(w, r) t.Logf("serve %s: %s", r.URL.Path, w.Body.Bytes()) w.Body.Reset() - r.URL.Path = "/serve/test" + r.URL.Path = "/notes/test" s.notes(w, r) t.Logf("serve %s: %s", r.URL.Path, w.Body.Bytes()) } + +func TestServerNotes(t *testing.T) { + s := New() + w := httptest.NewRecorder() + r := &http.Request{ + URL: &url.URL{ + Path: "/", + }, + } + s.edit(w, r) + t.Logf("serve %s: %s", r.URL.Path, w.Body.Bytes()) + + w.Body.Reset() + r.URL.Path = "/edit/" + s.edit(w, r) + t.Logf("serve %s: %s", r.URL.Path, w.Body.Bytes()) + + w.Body.Reset() + r.URL.Path = "/edit/test" + s.edit(w, r) + t.Logf("serve %s: %s", r.URL.Path, w.Body.Bytes()) +} diff --git a/server/server.go b/server/server.go old mode 100644 new mode 100755 diff --git a/server/server_test.go b/server/server_test.go old mode 100644 new mode 100755 diff --git a/wrapper.html b/wrapper.html old mode 100644 new mode 100755 index 347eba2..3d4f708 --- a/wrapper.html +++ b/wrapper.html @@ -2,7 +2,7 @@
- + {{{}}}