diff --git a/src/templates/mapping.go b/src/templates/mapping.go index 3df02dde..dee349b3 100644 --- a/src/templates/mapping.go +++ b/src/templates/mapping.go @@ -297,6 +297,8 @@ func LinkToTemplate(link *models.Link) Link { return tlink } +var controlCharRegex = regexp.MustCompile(`\p{Cc}`) + func TimelineItemsToJSON(items []TimelineItem) string { // NOTE(asaf): As of 2021-06-22: This only serializes the data necessary for snippet showcase. builder := strings.Builder{} @@ -314,11 +316,13 @@ func TimelineItemsToJSON(items []TimelineItem) string { builder.WriteString(`"description":"`) jsonString := string(item.Description) + jsonString = strings.ToValidUTF8(jsonString, "") jsonString = strings.ReplaceAll(jsonString, `\`, `\\`) jsonString = strings.ReplaceAll(jsonString, `"`, `\"`) jsonString = strings.ReplaceAll(jsonString, "\n", "\\n") jsonString = strings.ReplaceAll(jsonString, "\r", "\\r") jsonString = strings.ReplaceAll(jsonString, "\t", "\\t") + jsonString = controlCharRegex.ReplaceAllString(jsonString, "") builder.WriteString(jsonString) builder.WriteString(`",`) diff --git a/src/templates/src/include/showcase_templates.html b/src/templates/src/include/showcase_templates.html index c640a927..afaa96c5 100644 --- a/src/templates/src/include/showcase_templates.html +++ b/src/templates/src/include/showcase_templates.html @@ -27,7 +27,7 @@ -
+
Unknown description
@@ -42,4 +42,4 @@ \ No newline at end of file + diff --git a/src/templates/src/snippet.html b/src/templates/src/snippet.html index c0066339..0a96e240 100644 --- a/src/templates/src/snippet.html +++ b/src/templates/src/snippet.html @@ -8,7 +8,7 @@ {{ .Snippet.OwnerName }} {{ timehtml (relativedate .Snippet.Date) .Snippet.Date }}
-

{{ .Snippet.Description }}

+
{{ .Snippet.Description }}
{{ range .Snippet.EmbedMedia }} {{ if eq .Type mediaimage }}