diff --git a/CHANGELOG.md b/CHANGELOG.md index b8fcfb0c3a45f1eff8fa5cb7d51c6a4e1c8ffde0..6ea5b23bf621e81cffb78b773b4ea9e3dd3f2df2 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 a74ab0b6230def47873b455fec3a9bd633ea2dab..1db70700df2737a646bb331431700c4be4050b9a 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": [