@@ -3,6 +3,7 @@ package errata
33import (
44 "bytes"
55 "embed"
6+ "errors"
67 "fmt"
78 "io/fs"
89 "net/http"
@@ -130,8 +131,19 @@ func (s *Server) render(w http.ResponseWriter, path string, data pongo2.Context)
130131 s .errorHandler (w , NewFileNotReadableErr (err , path ))
131132 }
132133
133- tmpl , err := pongo2 .FromBytes (b )
134+ set := pongo2 .NewSet ("web" , pongo2 .NewFSLoader (web ))
135+
136+ tmpl , err := set .FromBytes (b )
134137 if err != nil {
138+ // pongo2 needs errata!
139+ if err , ok := err .(* pongo2.Error ); ok {
140+ var pathErr * fs.PathError
141+ if err .OrigError .Error () == "unable to resolve template" || errors .As (err .OrigError , & pathErr ) {
142+ s .errorHandler (w , NewTemplateExecutionErr (err ))
143+ return
144+ }
145+ }
146+
135147 s .errorHandler (w , NewInvalidSyntaxErr (err , path ))
136148 return
137149 }
@@ -195,7 +207,7 @@ func (s *Server) errorHandler(w http.ResponseWriter, err error) {
195207 }
196208 }
197209
198- http .Error (w , err . Error ( ), statusCode )
210+ http .Error (w , fmt . Sprintf ( "%+v" , err ), statusCode )
199211}
200212
201213type HTTPStatusCodeExtractor interface {
0 commit comments