summaryrefslogtreecommitdiff
path: root/src/gmi
diff options
context:
space:
mode:
Diffstat (limited to 'src/gmi')
-rw-r--r--src/gmi/gmi.go2
-rw-r--r--src/gmi/tpl.go14
2 files changed, 11 insertions, 5 deletions
diff --git a/src/gmi/gmi.go b/src/gmi/gmi.go
index 9ef6e19..6835ea0 100644
--- a/src/gmi/gmi.go
+++ b/src/gmi/gmi.go
@@ -30,6 +30,8 @@ type Params struct {
PublicURL *url.URL
ListenAddr string
CertificatesPath string
+
+ HTTPPublicURL *url.URL
}
// SetupCfg implement the cfg.Cfger interface.
diff --git a/src/gmi/tpl.go b/src/gmi/tpl.go
index 3022fe2..8220a49 100644
--- a/src/gmi/tpl.go
+++ b/src/gmi/tpl.go
@@ -33,8 +33,9 @@ type rendererGetPostSeriesNextPreviousRes struct {
}
type renderer struct {
- url *url.URL
- postStore post.Store
+ url *url.URL
+ postStore post.Store
+ httpPublicURL *url.URL
}
func (r renderer) GetPosts(page, count int) (rendererGetPostsRes, error) {
@@ -98,7 +99,9 @@ func (r renderer) PostBody(p post.StoredPost) (string, error) {
return filepath.Join("/posts", id)
},
StaticURL: func(path string) string {
- return filepath.Join("/static", path)
+ httpPublicURL := *r.httpPublicURL
+ httpPublicURL.Path = filepath.Join(httpPublicURL.Path, "/static", path)
+ return httpPublicURL.String()
},
Image: func(args ...string) (string, error) {
@@ -207,8 +210,9 @@ func (a *api) tplHandler() (gemini.Handler, error) {
buf := new(bytes.Buffer)
err := tpl.Execute(buf, renderer{
- url: r.URL,
- postStore: a.params.PostStore,
+ url: r.URL,
+ postStore: a.params.PostStore,
+ httpPublicURL: a.params.HTTPPublicURL,
})
if err != nil {