From 74e6e66665e0398574376038887be75f043e7107 Mon Sep 17 00:00:00 2001 From: Bad Manners <me@badmanners.xyz> Date: Sat, 2 Nov 2024 16:22:50 -0300 Subject: [PATCH] Fix copyrightedCharacters in feed --- package-lock.json | 4 ++-- package.json | 2 +- src/utils/feed.ts | 50 +++++++++++++++++++++++++---------------------- 3 files changed, 30 insertions(+), 26 deletions(-) diff --git a/package-lock.json b/package-lock.json index 502d965..e168a9c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "gallery.badmanners.xyz", - "version": "1.12.0", + "version": "1.12.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "gallery.badmanners.xyz", - "version": "1.12.0", + "version": "1.12.1", "hasInstallScript": true, "dependencies": { "@astrojs/alpinejs": "^0.4.0", diff --git a/package.json b/package.json index 0ce2a38..24d6bec 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "gallery.badmanners.xyz", "type": "module", - "version": "1.12.0", + "version": "1.12.1", "scripts": { "postinstall": "astro sync", "dev": "astro dev", diff --git a/src/utils/feed.ts b/src/utils/feed.ts index a04a7dc..8bc4de0 100644 --- a/src/utils/feed.ts +++ b/src/utils/feed.ts @@ -29,7 +29,7 @@ function toNoonUTCDate(date: Date) { const getLinkForUser = (user: CollectionEntry<"users">, lang: Lang) => { const userName = getUsernameForLang(user, lang); if (user.data.preferredLink) { - return `<a href="${user.data.links[user.data.preferredLink]!.link}">${userName}</a>`; + return `<a href="${encodeURI(user.data.links[user.data.preferredLink]!.link)}">${userName}</a>`; } return userName; }; @@ -80,17 +80,19 @@ export async function storyFeedItem( `<hr><h2>Description</h2>` + (await markdown(await qualifyLocalURLsInMarkdown(data.description, data.lang, site))) + (copyrightedCharacters.length > 0 - ? `<br /><ul>${copyrightedCharacters.map( - ({ user, characters }) => - "<li>" + - t( - data.lang, - "characters/characters_are_copyrighted_by", - getLinkForUser(user, data.lang), - characters, - ) + - "</li>", - )}</ul>` + ? `<br /><ul>${copyrightedCharacters + .map( + ({ user, characters }) => + "<li>" + + t( + data.lang, + "characters/characters_are_copyrighted_by", + getLinkForUser(user, data.lang), + characters, + ) + + "</li>", + ) + .join("")}</ul>` : ""), site, ), @@ -132,17 +134,19 @@ export async function gameFeedItem( `<hr><h2>Description</h2>` + (await markdown(await qualifyLocalURLsInMarkdown(data.description, data.lang, site))) + (copyrightedCharacters.length > 0 - ? `<br /><ul>${copyrightedCharacters.map( - ({ user, characters }) => - "<li>" + - t( - data.lang, - "characters/characters_are_copyrighted_by", - getLinkForUser(user, data.lang), - characters, - ) + - "</li>", - )}</ul>` + ? `<br /><ul>${copyrightedCharacters + .map( + ({ user, characters }) => + "<li>" + + t( + data.lang, + "characters/characters_are_copyrighted_by", + getLinkForUser(user, data.lang), + characters, + ) + + "</li>", + ) + .join("")}</ul>` : ""), site, ),