diff options
Diffstat (limited to 'src/gmi/tpl.go')
-rw-r--r-- | src/gmi/tpl.go | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gmi/tpl.go b/src/gmi/tpl.go index 8220a49..e448afd 100644 --- a/src/gmi/tpl.go +++ b/src/gmi/tpl.go @@ -7,7 +7,9 @@ import ( "fmt" "io" "io/fs" + "mime" "net/url" + "path" "path/filepath" "strconv" "strings" @@ -194,10 +196,12 @@ func (a *api) tplHandler() (gemini.Handler, error) { ) { tplPath := strings.TrimPrefix(r.URL.Path, "/") + mimeType := mime.TypeByExtension(path.Ext(r.URL.Path)) ctx = mctx.Annotate(ctx, "url", r.URL, "tplPath", tplPath, + "mimeType", mimeType, ) tpl := allTpls.Lookup(tplPath) @@ -207,6 +211,10 @@ func (a *api) tplHandler() (gemini.Handler, error) { return } + if mimeType != "" { + rw.SetMediaType(mimeType) + } + buf := new(bytes.Buffer) err := tpl.Execute(buf, renderer{ |