aboutsummaryrefslogtreecommitdiff
path: root/wiki.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-02-16 18:43:22 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-02-16 18:43:22 +0100
commit8bf5d9d2c82560c81be6809522215bded0cf9911 (patch)
tree82df16f1e2b3d130b63a910df55e22a124d56c5b /wiki.go
Inital import
Diffstat (limited to 'wiki.go')
-rw-r--r--wiki.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/wiki.go b/wiki.go
new file mode 100644
index 0000000..5f096c1
--- /dev/null
+++ b/wiki.go
@@ -0,0 +1,39 @@
+package main
+
+import (
+ "io/ioutil"
+ "net/http"
+ "text/template"
+)
+
+type Page struct {
+ Title string
+ Body []byte
+ Pages []string
+ HTML string
+}
+
+func (p *Page) fileName() string {
+ return "data/" + p.Title
+}
+
+func (p *Page) save() error {
+ return ioutil.WriteFile(p.fileName(), p.Body, 0600)
+}
+
+func loadPage(title string) (p *Page, err error) {
+ p = &Page{Title: title}
+ p.Body, err = ioutil.ReadFile(p.fileName())
+ return
+}
+
+func (p *Page) render(w http.ResponseWriter, tmpl *template.Template) {
+ err := tmpl.ExecuteTemplate(w, "root", p)
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ }
+}
+
+func main() {
+ http.ListenAndServe(":8080", nil)
+}