shithub: hugo

Download patch

ref: be45399cba0a47910db7a142e1574a9da1534713
parent: be7404e3371caa2851111bb3bcdc1c26f7ed47f5
author: bep <[email protected]>
date: Fri May 29 07:31:23 EDT 2015

Extract Ace handling to a method

To prepare for some testing.

See #1178

--- a/tpl/template.go
+++ b/tpl/template.go
@@ -157,6 +157,28 @@
 	return err
 }
 
+func (t *GoHTMLTemplate) AddAceTemplate(name, basePath, innerPath string, baseContent, innerContent []byte) error {
+	var base, inner *ace.File
+	name = name[:len(name)-len(filepath.Ext(innerPath))] + ".html"
+	if basePath != "" {
+		base = ace.NewFile(basePath, baseContent)
+		inner = ace.NewFile(innerPath, innerContent)
+	} else {
+		base = ace.NewFile(innerPath, innerContent)
+		inner = ace.NewFile("", []byte{})
+	}
+	parsed, err := ace.ParseSource(ace.NewSource(base, inner, []*ace.File{}), nil)
+	if err != nil {
+		t.errors = append(t.errors, &templateErr{name: name, err: err})
+		return err
+	}
+	_, err = ace.CompileResultWithTemplate(t.New(name), parsed, nil)
+	if err != nil {
+		t.errors = append(t.errors, &templateErr{name: name, err: err})
+	}
+	return err
+}
+
 func (t *GoHTMLTemplate) AddTemplateFile(name, baseTemplatePath, path string) error {
 	// get the suffix and switch on that
 	ext := filepath.Ext(path)
@@ -172,35 +194,21 @@
 			return err
 		}
 	case ".ace":
-		b, err := ioutil.ReadFile(path)
+		var innerContent, baseContent []byte
+		innerContent, err := ioutil.ReadFile(path)
+
 		if err != nil {
 			return err
 		}
 
-		var base, inner *ace.File
-
-		name = name[:len(name)-len(ext)] + ".html"
 		if baseTemplatePath != "" {
-			b2, err := ioutil.ReadFile(baseTemplatePath)
+			baseContent, err = ioutil.ReadFile(baseTemplatePath)
 			if err != nil {
 				return err
 			}
-			base = ace.NewFile(baseTemplatePath, b2)
-			inner = ace.NewFile(path, b)
-		} else {
-			base = ace.NewFile(path, b)
-			inner = ace.NewFile("", []byte{})
 		}
-		rslt, err := ace.ParseSource(ace.NewSource(base, inner, []*ace.File{}), nil)
-		if err != nil {
-			t.errors = append(t.errors, &templateErr{name: name, err: err})
-			return err
-		}
-		_, err = ace.CompileResultWithTemplate(t.New(name), rslt, nil)
-		if err != nil {
-			t.errors = append(t.errors, &templateErr{name: name, err: err})
-		}
-		return err
+
+		return t.AddAceTemplate(name, baseTemplatePath, path, baseContent, innerContent)
 	default:
 		b, err := ioutil.ReadFile(path)
 		if err != nil {