diff options
author | r <r@freesoftwareextremist.com> | 2022-01-27 12:05:15 +0000 |
---|---|---|
committer | r <r@freesoftwareextremist.com> | 2022-01-27 12:05:15 +0000 |
commit | b8c0133bcd5e7f1d4063ad992949cc19d18e7aad (patch) | |
tree | 5322b83d194c9ffcb498627bdd16175f9508d87d /renderer | |
parent | 54c42455f393c5ae8ebdb19884d40ebd9a18f755 (diff) | |
parent | 4ef5e0daf285f41850c9ac53b0322d85fbf5eaec (diff) | |
download | bloat-b8c0133bcd5e7f1d4063ad992949cc19d18e7aad.tar.gz bloat-b8c0133bcd5e7f1d4063ad992949cc19d18e7aad.zip |
Merge branch 'master' into absolute_fluoride
Diffstat (limited to 'renderer')
-rw-r--r-- | renderer/renderer.go | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/renderer/renderer.go b/renderer/renderer.go index 6c9877a..f50e185 100644 --- a/renderer/renderer.go +++ b/renderer/renderer.go @@ -1,8 +1,8 @@ package renderer import ( - "fmt" "io" + "regexp" "strconv" "strings" "text/template" @@ -39,29 +39,28 @@ type TemplateData struct { Ctx *Context } +func emojiHTML(e mastodon.Emoji, height string) string { + return `<img class="emoji" src="` + e.URL + `" alt=":` + e.ShortCode + `:" title=":` + e.ShortCode + `:" height="` + height + `"/>` +} + func emojiFilter(content string, emojis []mastodon.Emoji) string { var replacements []string - var r string for _, e := range emojis { - r = fmt.Sprintf("<img class=\"emoji\" src=\"%s\" alt=\":%s:\" title=\":%s:\" height=\"24\" />", - e.URL, e.ShortCode, e.ShortCode) - replacements = append(replacements, ":"+e.ShortCode+":", r) + replacements = append(replacements, ":"+e.ShortCode+":", emojiHTML(e, "24")) } return strings.NewReplacer(replacements...).Replace(content) } -func statusContentFilter(spoiler string, content string, - emojis []mastodon.Emoji, mentions []mastodon.Mention) string { +var quoteRE = regexp.MustCompile("(?mU)(^|> *|\n)(>.*)(<br|$)") - var replacements []string - var r string +func statusContentFilter(spoiler, content string, emojis []mastodon.Emoji, mentions []mastodon.Mention) string { if len(spoiler) > 0 { - content = spoiler + "<br />" + content + content = spoiler + "<br/>" + content } + content = quoteRE.ReplaceAllString(content, `$1<span class="quote">$2</span>$3`) + var replacements []string for _, e := range emojis { - r = fmt.Sprintf("<img class=\"emoji\" src=\"%s\" alt=\":%s:\" title=\":%s:\" height=\"32\" />", - e.URL, e.ShortCode, e.ShortCode) - replacements = append(replacements, ":"+e.ShortCode+":", r) + replacements = append(replacements, ":"+e.ShortCode+":", emojiHTML(e, "32")) } for _, m := range mentions { replacements = append(replacements, `"`+m.URL+`"`, `"/user/`+m.ID+`" title="@`+m.Acct+`"`) |