diff options
Diffstat (limited to 'templ.go')
| -rw-r--r-- | templ.go | 89 | 
1 files changed, 39 insertions, 50 deletions
@@ -14,9 +14,9 @@   *  <http://www.gnu.org/licenses/>.   *   *  (c) Vincenzo "KatolaZ" Nicosia 2017 -- <katolaz@freaknet.org> - *  - *  - *  This file is part of "binnit", a minimal no-fuss pastebin-like  + * + * + *  This file is part of "binnit", a minimal no-fuss pastebin-like   *  server written in golang   *   */ @@ -25,83 +25,72 @@  *  * minimal Templating support for binit  * -*/ + */  package main -  import ( -	"os" +	"errors"  	"io/ioutil" +	"os"  	"regexp" -	"errors"  ) +func prepare_paste_page(title, date, content, templ_dir string) (string, error) { -func prepare_paste_page(c *Config, paste_ID string) (string, error) { - -	s:= "" +	s := ""  	// insert header -	head_file := c.templ_dir + "/header.html" +	head_file := templ_dir + "/header.html"  	f_head, err := os.Open(head_file)  	defer f_head.Close() -	 -	if  err == nil { + +	if err == nil {  		cont, err := ioutil.ReadFile(head_file) -		if err == nil{ +		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() +	// insert content -	if err == nil { -		// Let's read the content of the paste +	// ...Let's read the template +	templ_file := templ_dir + "/templ.html" +	f_templ, err := os.Open(templ_file) +	defer f_templ.Close() -		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") -		} +	 +	if cont, err := ioutil.ReadFile(templ_file); err == nil { +		tmpl := string(cont) +		// ...and replace  {{CONTENT}} with the paste itself! +		re, _ := regexp.Compile("{{TITLE}}") +		tmpl = string(re.ReplaceAll([]byte(tmpl), []byte(title))) + +		re, _ = regexp.Compile("{{DATE}}") +		tmpl = string(re.ReplaceAll([]byte(tmpl), []byte(date))) + +		re, _ = regexp.Compile("{{CONTENT}}") +		tmpl = string(re.ReplaceAll([]byte(tmpl), []byte(content))) + +		s += tmpl +		 +	} else { +		return "", errors.New("Error opening template file")  	} +	  	// insert footer -	foot_file := c.templ_dir + "/footer.html" +	foot_file := templ_dir + "/footer.html"  	f_foot, err := os.Open(foot_file)  	defer f_foot.Close() -	if  err == nil { +	if err == nil {  		cont, err := ioutil.ReadFile(foot_file) -		if err == nil{ +		if err == nil {  			s += string(cont)  		}  	} -	 +  	return s, nil  }  | 
