summaryrefslogtreecommitdiff
path: root/src/gmi/tpl.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/gmi/tpl.go')
-rw-r--r--src/gmi/tpl.go8
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{