From 2d49ff9fb4ea9b0e88df1621e954246bc1851de6 Mon Sep 17 00:00:00 2001 From: r Date: Wed, 30 Mar 2022 15:52:30 +0000 Subject: Switch to html/template --- renderer/renderer.go | 13 ++++++++----- service/service.go | 4 ++-- templates/header.tmpl | 2 +- templates/list.tmpl | 2 +- templates/nav.tmpl | 2 +- templates/notification.tmpl | 4 ++-- templates/requestlist.tmpl | 2 +- templates/search.tmpl | 2 +- templates/status.tmpl | 13 ++++++++----- templates/user.tmpl | 6 +++--- templates/userlistitem.tmpl | 2 +- templates/usersearch.tmpl | 4 ++-- 12 files changed, 31 insertions(+), 25 deletions(-) diff --git a/renderer/renderer.go b/renderer/renderer.go index 20a3c05..6e50270 100644 --- a/renderer/renderer.go +++ b/renderer/renderer.go @@ -1,11 +1,11 @@ package renderer import ( + "html/template" "io" "regexp" "strconv" "strings" - "text/template" "time" "bloat/mastodon" @@ -54,10 +54,7 @@ func emojiFilter(content string, emojis []mastodon.Emoji) string { var quoteRE = regexp.MustCompile("(?mU)(^|> *|\n)(>.*)( 0 { - content = spoiler + "
" + content - } +func statusContentFilter(content string, emojis []mastodon.Emoji, mentions []mastodon.Mention) string { content = quoteRE.ReplaceAllString(content, `$1$2$3`) var replacements []string for _, e := range emojis { @@ -129,6 +126,10 @@ func withContext(data interface{}, ctx *Context) TemplateData { return TemplateData{data, ctx} } +func raw(s string) template.HTML { + return template.HTML(s) +} + type Renderer interface { Render(ctx *Context, writer io.Writer, page string, data interface{}) (err error) } @@ -148,6 +149,8 @@ func NewRenderer(templateGlobPattern string) (r *renderer, err error) { "FormatTimeRFC3339": formatTimeRFC3339, "FormatTimeRFC822": formatTimeRFC822, "WithContext": withContext, + "HTML": template.HTMLEscapeString, + "Raw": raw, }).ParseGlob(templateGlobPattern) if err != nil { return diff --git a/service/service.go b/service/service.go index 64c7bf0..cda42f8 100644 --- a/service/service.go +++ b/service/service.go @@ -711,7 +711,7 @@ func (s *service) UserSearchPage(c *client, if len(results.Statuses) == 20 { offset += 20 nextLink = fmt.Sprintf("/usersearch/%s?q=%s&offset=%d", id, - url.QueryEscape(q), offset) + q, offset) } if len(q) > 0 { @@ -770,7 +770,7 @@ func (s *service) SearchPage(c *client, (qType == "statuses" && len(results.Statuses) == 20) { offset += 20 nextLink = fmt.Sprintf("/search?q=%s&type=%s&offset=%d", - url.QueryEscape(q), qType, offset) + q, qType, offset) } if len(q) > 0 { diff --git a/templates/header.tmpl b/templates/header.tmpl index 8eb53f6..1abb6dd 100644 --- a/templates/header.tmpl +++ b/templates/header.tmpl @@ -17,7 +17,7 @@ {{if .RefreshInterval}} {{end}} - {{if gt .Count 0}}({{.Count}}){{end}} {{.Title | html}} + {{if gt .Count 0}}({{.Count}}){{end}} {{.Title}} {{if .CustomCSS}} diff --git a/templates/list.tmpl b/templates/list.tmpl index 1b15278..dcc6ee8 100644 --- a/templates/list.tmpl +++ b/templates/list.tmpl @@ -33,7 +33,7 @@
- +
diff --git a/templates/nav.tmpl b/templates/nav.tmpl index e7a7981..db88aa0 100644 --- a/templates/nav.tmpl +++ b/templates/nav.tmpl @@ -8,7 +8,7 @@