From 4f08ff00d83eee7f33e3a2c92f5dbf75aa027a27 Mon Sep 17 00:00:00 2001
From: mat <github@matdoes.dev>
Date: Sun, 20 Mar 2022 22:55:13 -0500
Subject: Fix svelte issue when embedding on discord

---
 src/lib/Head.svelte | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

(limited to 'src/lib/Head.svelte')

diff --git a/src/lib/Head.svelte b/src/lib/Head.svelte
index e8032db..42d8170 100644
--- a/src/lib/Head.svelte
+++ b/src/lib/Head.svelte
@@ -1,4 +1,13 @@
 <script lang="ts">
+	function serializeHtml(text: string) {
+		return text
+			.replace(/&/g, '&amp;')
+			.replace(/</g, '&lt;')
+			.replace(/>/g, '&gt;')
+			.replace(/"/g, '&quot;')
+			.replace(/'/g, '&#039;')
+	}
+
 	/** The title that is shown at the top of the page and in search engines */
 	export let title = 'SkyBlock Stats'
 	/** The description that is shown in search engines */
@@ -11,7 +20,11 @@
 
 <svelte:head>
 	<title>{title}</title>
-	<meta name="description" content={description} />
+	<!--
+		svelte puts "\n" instead of actual newlines so we have to do this hack :(
+		if we don't do this it looks bad on discord and probably other places
+	-->
 	<meta property="og:title" content={metaTitle} />
-	<meta property="og:description" content={metaDescription} />
+	{@html `<meta property="description" content="${serializeHtml(description)}" />`}
+	{@html `<meta property="og:description" content="${serializeHtml(metaDescription)}" />`}
 </svelte:head>
-- 
cgit 

