From e29d79e5f9785d039175da43704d02907b54ab47 Mon Sep 17 00:00:00 2001 From: KatolaZ Date: Sat, 1 Jul 2017 00:45:51 +0100 Subject: basic templating added (only for paste visualisation) --- templ.go | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 templ.go (limited to 'templ.go') 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 +} -- cgit v1.2.3