summaryrefslogtreecommitdiff
path: root/templ.go
diff options
context:
space:
mode:
authorKatolaZ <katolaz@freaknet.org>2017-07-01 00:45:51 +0100
committerKatolaZ <katolaz@freaknet.org>2017-07-01 00:45:51 +0100
commite29d79e5f9785d039175da43704d02907b54ab47 (patch)
tree05d915882199105fc0bf57889fcbb7cfef1c4229 /templ.go
parent32e86d1129f200c776f879da835a6659427ca707 (diff)
basic templating added (only for paste visualisation)
Diffstat (limited to 'templ.go')
-rw-r--r--templ.go84
1 files changed, 84 insertions, 0 deletions
diff --git a/templ.go b/templ.go
new file mode 100644
index 0000000..72656bd
--- /dev/null
+++ b/templ.go
@@ -0,0 +1,84 @@
+/*
+*
+* Templating support for binit
+*
+*/
+
+package main
+
+
+import (
+ "os"
+ "io/ioutil"
+ "regexp"
+ "errors"
+)
+
+
+func prepare_paste_page(c *Config, paste_ID string) (string, error) {
+
+ s:= ""
+
+ // insert header
+
+ head_file := c.templ_dir + "/header.html"
+
+ f_head, err := os.Open(head_file)
+ defer f_head.Close()
+
+ if err == nil {
+ cont, err := ioutil.ReadFile(head_file)
+ if err == nil{
+ s += string(cont)
+ }
+ }
+
+ // insert content
+
+ cont_file := c.paste_dir + "/" + paste_ID
+ f_cont, err := os.Open(cont_file)
+ defer f_cont.Close()
+
+ if err == nil {
+ // Let's read the content of the paste
+
+ cont, err := ioutil.ReadFile(cont_file)
+ if err == nil {
+ paste_buf := string(cont)
+
+ // ...Let's read the template
+ templ_file := c.templ_dir + "/templ.html"
+ f_templ, err := os.Open(templ_file)
+ defer f_templ.Close()
+
+ cont, err := ioutil.ReadFile(templ_file)
+ if err == nil {
+ tmpl := string(cont)
+ // ...and replace {{CONTENT}} with the paste itself!
+ re,_ := regexp.Compile("{{CONTENT}}")
+ tmpl = string(re.ReplaceAll([]byte(tmpl), []byte(paste_buf)))
+
+ s += tmpl
+
+ } else {
+ return "", errors.New("Error opening template file")
+ }
+
+ } else {
+ return "", errors.New("Error opening paste")
+ }
+ }
+ // insert footer
+ foot_file := c.templ_dir + "/footer.html"
+ f_foot, err := os.Open(foot_file)
+ defer f_foot.Close()
+
+ if err == nil {
+ cont, err := ioutil.ReadFile(foot_file)
+ if err == nil{
+ s += string(cont)
+ }
+ }
+
+ return s, nil
+}