diff --git a/document.go b/document.go index 92c1cca..40e8953 100644 --- a/document.go +++ b/document.go @@ -37,7 +37,7 @@ func (this *Document) Execute (output io.Writer, data ExecutionData) error { if err != nil { return err } // execute parent with this document's result - parent, err := this.environment.Parse(this.Extends) + parent, err := this.environment.ParseRelative(this.Extends, this) if err != nil { return err } return parent.Execute(output, ExecutionData { Data: data.Data, diff --git a/environment.go b/environment.go index baaac34..cd7b0e6 100644 --- a/environment.go +++ b/environment.go @@ -52,19 +52,15 @@ func (this *Environment) Parse (name string) (*Document, error) { // ParseRelative is like Parse, but treats the name as a path relative to the // given document. func (this *Environment) ParseRelative (name string, document *Document) (*Document, error) { - var fileName string if document == nil { - fileName = filepath.Clean(name) + name = filepath.Clean(name) } else { - nam, err := document.Abs(name) - if err != nil { return nil, err } - fileName = nam - nam, err = document.Rel(name) + nam, err := document.Rel(name) if err != nil { return nil, err } name = nam } - input, err := this.GetFS().Open(fileName) + input, err := this.GetFS().Open(name) if err != nil { // if the file couldn't be opened, delete from cache in case the // file was deleted