refac: markdown rendering
Co-Authored-By: Jun Siang Cheah <me@jscheah.me>
This commit is contained in:
co-authored by
Jun Siang Cheah
parent
6e6f9862e6
commit
ab6346ea1c
@@ -0,0 +1,44 @@
|
||||
<script lang="ts">
|
||||
import type { Token } from 'marked';
|
||||
import { unescapeHtml } from '$lib/utils';
|
||||
import { onMount } from 'svelte';
|
||||
import { revertSanitizedResponseContent } from '$lib/utils/index.js';
|
||||
import Image from '$lib/components/common/Image.svelte';
|
||||
|
||||
export let id: string;
|
||||
export let tokens: Token[];
|
||||
|
||||
onMount(() => {
|
||||
console.log('MarkdownInlineTokens', id, tokens, top);
|
||||
});
|
||||
</script>
|
||||
|
||||
{#each tokens as token}
|
||||
{#if token.type === 'escape'}
|
||||
{unescapeHtml(token.text)}
|
||||
{:else if token.type === 'html'}
|
||||
{@html token.text}
|
||||
{:else if token.type === 'link'}
|
||||
<a href={token.href} target="_blank" rel="nofollow" title={token.title}>{token.text}</a>
|
||||
{:else if token.type === 'image'}
|
||||
<Image src={token.href} alt={token.text} />
|
||||
{:else if token.type === 'strong'}
|
||||
<strong>
|
||||
<svelte:self id={`${id}-strong`} tokens={token.tokens} />
|
||||
</strong>
|
||||
{:else if token.type === 'em'}
|
||||
<em>
|
||||
<svelte:self id={`${id}-em`} tokens={token.tokens} />
|
||||
</em>
|
||||
{:else if token.type === 'codespan'}
|
||||
<code>{unescapeHtml(token.text.replaceAll('&', '&'))}</code>
|
||||
{:else if token.type === 'br'}
|
||||
<br />
|
||||
{:else if token.type === 'del'}
|
||||
<del>
|
||||
<svelte:self id={`${id}-del`} tokens={token.tokens} />
|
||||
</del>
|
||||
{:else if token.type === 'text'}
|
||||
{unescapeHtml(token.text)}
|
||||
{/if}
|
||||
{/each}
|
||||
Reference in New Issue
Block a user