From ee48548fd6b500d01392888ae72c531193e2a4db Mon Sep 17 00:00:00 2001 From: Jeffrey Phillips Freeman <the@jeffreyfreeman.me> Date: Mon, 16 Oct 2023 22:54:49 -0400 Subject: [PATCH] Fixed a bug where backslashes can cause json not to render --- CHANGELOG.md | 2 ++ layouts/partials/status.ajson | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b8fcfb0c3..6ea5b23bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,8 @@ * Added MathJax support for rendering Latex and math. * Added support for PseudocodeJS for rendering beautiful, standard, pseudocode. * Table of contents will now render if frontmatter `toc` is set to `true`. +* Fixed a bug where backslashes in the summary of a post could break ActivityPub + JSON endpoints. ## 1.1.0 diff --git a/layouts/partials/status.ajson b/layouts/partials/status.ajson index a74ab0b62..1db70700d 100644 --- a/layouts/partials/status.ajson +++ b/layouts/partials/status.ajson @@ -1,3 +1,10 @@ +{{- $summaryClean := "" }} +{{- if .Summary }} +{{- $summaryClean = .Summary }} +{{- $summaryClean = replace $summaryClean "\n" "<br>" }} +{{- $summaryClean = replace $summaryClean "\r" "" }} +{{- $summaryClean = replace $summaryClean "\\" "\\\\" }} +{{- end }} { {{ partial "context.ajson" . }}, "id": "{{ .Permalink }}", @@ -12,7 +19,7 @@ "sensitive": false, "atomUri": "{{ .Permalink }}", "inReplyToAtomUri": null, - "content": {{ printf "\"" | safeHTML }}<b>{{.Title}}</b>{{ if .Summary }}<br>{{ replace (replace .Summary "\n" "<br>") "\r" "" | safeHTML}}{{ end }}<br><br>Read more here:<br><a href='{{.Permalink}}'>{{.Permalink}}</a><br><br>{{ if .Site.Params.renderArticleHashtags }}{{ if .Params.tags }}{{ range $indexArticleTags, $elementArticleTag := .Params.tags }}{{ if ne $indexArticleTags 0 }} {{ end }}<a href='{{ site.BaseURL }}tags/{{ $elementArticleTag | lower }}' class='mention hashtag' rel='tag'>#<span>{{ $elementArticleTag }}</span></a>{{ end }}{{ end }}{{ end }} {{ if .Site.Params.renderDefaultHashtags }}{{ if .Site.Params.postHashtags }}{{ range $indexTags, $elementTag := .Site.Params.postHashtags }}{{ if ne $indexTags 0 }} {{ end }}<a href='#' class='mention hashtag' rel='tag'>#<span>{{ $elementTag }}</span></a>{{ end }}{{ end }}{{ end }}{{ printf "\"" | safeHTML }}, + "content": {{ printf "\"" | safeHTML }}<b>{{.Title}}</b>{{ if .Summary }}<br>{{ $summaryClean | safeHTML}}{{ end }}<br><br>Read more here:<br><a href='{{.Permalink}}'>{{.Permalink}}</a><br><br>{{ if .Site.Params.renderArticleHashtags }}{{ if .Params.tags }}{{ range $indexArticleTags, $elementArticleTag := .Params.tags }}{{ if ne $indexArticleTags 0 }} {{ end }}<a href='{{ site.BaseURL }}tags/{{ $elementArticleTag | lower }}' class='mention hashtag' rel='tag'>#<span>{{ $elementArticleTag }}</span></a>{{ end }}{{ end }}{{ end }} {{ if .Site.Params.renderDefaultHashtags }}{{ if .Site.Params.postHashtags }}{{ range $indexTags, $elementTag := .Site.Params.postHashtags }}{{ if ne $indexTags 0 }} {{ end }}<a href='#' class='mention hashtag' rel='tag'>#<span>{{ $elementTag }}</span></a>{{ end }}{{ end }}{{ end }}{{ printf "\"" | safeHTML }}, "attachment": [], {{ if (or (and .Site.Params.postHashtags .Site.Params.renderDefaultHashtags) (and .Params.tags .Site.Params.renderArticleHashtags)) }} "tag": [ -- GitLab