shithub: hugo

Download patch

ref: a0d956c2ad7371d989fc192e122f0097b07a5b01
parent: 390c158f4e934278e22f2700fcfc1644de402f97
author: Tatsushi Demachi <[email protected]>
date: Tue Sep 30 06:19:50 EDT 2014

Add Ace template engine support

--- a/tpl/template.go
+++ b/tpl/template.go
@@ -30,6 +30,7 @@
 	"github.com/spf13/cast"
 	"github.com/spf13/hugo/helpers"
 	jww "github.com/spf13/jwalterweatherman"
+	"github.com/yosssi/ace"
 )
 
 var localTemplates *template.Template
@@ -669,6 +670,24 @@
 		if _, err := compiler.CompileWithTemplate(t.New(name)); err != nil {
 			return err
 		}
+	case ".ace":
+		b, err := ioutil.ReadFile(path)
+		if err != nil {
+			return err
+		}
+		name = name[:len(name)-len(ext)] + ".html"
+		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
 	default:
 		b, err := ioutil.ReadFile(path)
 		if err != nil {