diff --git a/domain/model/entry.go b/domain/model/entry.go index b8d2a0d..e59562f 100644 --- a/domain/model/entry.go +++ b/domain/model/entry.go @@ -15,6 +15,7 @@ type Entry interface { // Optional: can return empty string Title() string + ImageUrl() string SetID(id string) SetPublishedAt(publishedAt *time.Time) @@ -40,6 +41,10 @@ func (e *EntryBase) PublishedAt() *time.Time { return e.publishedAt } +func (e *EntryBase) ImageUrl() string { + return "" +} + func (e *EntryBase) SetID(id string) { e.id = id } diff --git a/entry_types/image.go b/entry_types/image.go index fcaaed6..89959a3 100644 --- a/entry_types/image.go +++ b/entry_types/image.go @@ -58,6 +58,10 @@ func (e *Image) Title() string { return e.meta.Title } +func (e *Image) ImageUrl() string { + return "/media/" + e.meta.ImageId +} + func (e *Image) Content() model.EntryContent { str, err := render.RenderTemplateToString("entry/Image", e) if err != nil { diff --git a/render/templates.go b/render/templates.go index 9cc9d55..6166919 100644 --- a/render/templates.go +++ b/render/templates.go @@ -4,6 +4,7 @@ import ( "bytes" "embed" "io" + "net/url" "owl-blogs/domain/model" "text/template" @@ -29,6 +30,10 @@ var funcMap = template.FuncMap{ } return html }, + "urljoin": func(elems ...string) string { + r, _ := url.JoinPath(elems[0], elems[1:]...) + return r + }, } func CreateTemplateWithBase(templateName string) (*template.Template, error) { diff --git a/render/templates/base.tmpl b/render/templates/base.tmpl index 703dcf0..454354f 100644 --- a/render/templates/base.tmpl +++ b/render/templates/base.tmpl @@ -6,6 +6,8 @@ {{template "title" .Data}} - {{ .SiteConfig.Title }} + {{ template "head" .}} + diff --git a/render/templates/views/admin.tmpl b/render/templates/views/admin.tmpl index b28deae..d281530 100644 --- a/render/templates/views/admin.tmpl +++ b/render/templates/views/admin.tmpl @@ -1,4 +1,5 @@ {{define "title"}}Admin{{end}} +{{define "head"}}{{end}} {{define "main"}}

Write

diff --git a/render/templates/views/admin_config.tmpl b/render/templates/views/admin_config.tmpl index ab91f6f..e33c0ec 100644 --- a/render/templates/views/admin_config.tmpl +++ b/render/templates/views/admin_config.tmpl @@ -1,5 +1,7 @@ {{define "title"}}Configuration{{end}} +{{define "head"}}{{end}} + {{define "main"}} ← Back diff --git a/render/templates/views/binary_manager.tmpl b/render/templates/views/binary_manager.tmpl index 9640a5b..d009f40 100644 --- a/render/templates/views/binary_manager.tmpl +++ b/render/templates/views/binary_manager.tmpl @@ -1,4 +1,5 @@ {{define "title"}}Files{{end}} +{{define "head"}}{{end}} {{define "main"}} diff --git a/render/templates/views/draft_list.tmpl b/render/templates/views/draft_list.tmpl index c87e7c3..2575d16 100644 --- a/render/templates/views/draft_list.tmpl +++ b/render/templates/views/draft_list.tmpl @@ -1,4 +1,5 @@ {{define "title"}}Index{{end}} +{{define "head"}}{{end}} {{define "main"}} diff --git a/render/templates/views/editor.tmpl b/render/templates/views/editor.tmpl index 78948ca..8fa742b 100644 --- a/render/templates/views/editor.tmpl +++ b/render/templates/views/editor.tmpl @@ -1,4 +1,5 @@ {{define "title"}}Editor{{end}} +{{define "head"}}{{end}} {{define "main"}} diff --git a/render/templates/views/entry.tmpl b/render/templates/views/entry.tmpl index df2fdee..26724b9 100644 --- a/render/templates/views/entry.tmpl +++ b/render/templates/views/entry.tmpl @@ -1,5 +1,15 @@ {{define "title"}}{{.Entry.Title}}{{end}} +{{define "head"}} + + +{{ if .Data.Entry.ImageUrl}} + +{{ end }} + + +{{end}} + {{define "main"}} {{ if not .Entry.PublishedAt }} @@ -16,7 +26,7 @@

{{.Entry.Title}}

{{end}} - # + # Published: {{ if .Entry.PublishedAt }}