aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-04-13 02:22:46 -0700
committerFuwn <[email protected]>2024-04-13 02:22:46 -0700
commita22a05d8c34e03e70d726638667467dcb85ef787 (patch)
tree4bb08bbec18c11f2f179289ff6d53a8a2de34cf7
parentfix(anime): no match out-of-season anime (diff)
downloaddue.moe-a22a05d8c34e03e70d726638667467dcb85ef787.tar.xz
due.moe-a22a05d8c34e03e70d726638667467dcb85ef787.zip
feat(user): markdown biography
-rwxr-xr-xbun.lockbbin172837 -> 173947 bytes
-rw-r--r--package.json1
-rw-r--r--src/lib/MarkdownLink.svelte21
-rw-r--r--src/routes/user/[user]/+page.svelte9
4 files changed, 30 insertions, 1 deletions
diff --git a/bun.lockb b/bun.lockb
index 38f25dac..a86b59fa 100755
--- a/bun.lockb
+++ b/bun.lockb
Binary files differ
diff --git a/package.json b/package.json
index 7a58fccb..db12dfd7 100644
--- a/package.json
+++ b/package.json
@@ -47,6 +47,7 @@
"rss-parser": "^3.13.0",
"string-similarity": "^4.0.4",
"svelte-i18n": "^4.0.0",
+ "svelte-markdown": "^0.4.1",
"svelte-notifications": "^0.9.98",
"wanakana": "^5.3.1"
}
diff --git a/src/lib/MarkdownLink.svelte b/src/lib/MarkdownLink.svelte
new file mode 100644
index 00000000..d6fdefe0
--- /dev/null
+++ b/src/lib/MarkdownLink.svelte
@@ -0,0 +1,21 @@
+<script lang="ts">
+ export let href: string;
+ export let text: string;
+
+ try {
+ let url = new URL(href);
+
+ switch (url.protocol) {
+ case 'javascript:':
+ href = '#';
+ break;
+
+ default:
+ break;
+ }
+ } catch (error) {
+ href = '#';
+ }
+</script>
+
+<a {href} target="_blank">{text}</a>
diff --git a/src/routes/user/[user]/+page.svelte b/src/routes/user/[user]/+page.svelte
index 992af2ab..7cffd647 100644
--- a/src/routes/user/[user]/+page.svelte
+++ b/src/routes/user/[user]/+page.svelte
@@ -16,6 +16,8 @@
import proxy from '$lib/Utility/proxy';
import { parseScheduleHtml } from '$lib/Data/hololive';
import type { UserPreferences } from '$lib/Database/userPreferences.js';
+ import SvelteMarkdown from 'svelte-markdown';
+ import MarkdownLink from '$lib/MarkdownLink.svelte';
export let data;
@@ -123,7 +125,12 @@
</p>
{#if schedule && preferences && preferences.biography && preferences.biography.length > 0}
- <p>{preferences.biography}</p>
+ <SvelteMarkdown
+ source={preferences.biography}
+ renderers={{
+ link: MarkdownLink
+ }}
+ />
{/if}
{$locale({