Skip to content

svelte-exmarkdown v5 #5

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
"shadcn-svelte": "1.0.0-next.4",
"svelte": "^5.20.2",
"svelte-check": "^4.0.0",
"svelte-exmarkdown": "^4.0.3",
"svelte-exmarkdown": "^5.0.0",
"svelte-sonner": "^0.3.28",
"tailwind-merge": "^3.0.1",
"tailwind-variants": "^0.3.1",
Expand Down
10 changes: 5 additions & 5 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 0 additions & 14 deletions src/lib/components/markdown/a.svelte

This file was deleted.

9 changes: 0 additions & 9 deletions src/lib/components/markdown/h1.svelte

This file was deleted.

9 changes: 0 additions & 9 deletions src/lib/components/markdown/h2.svelte

This file was deleted.

9 changes: 0 additions & 9 deletions src/lib/components/markdown/h3.svelte

This file was deleted.

9 changes: 0 additions & 9 deletions src/lib/components/markdown/h4.svelte

This file was deleted.

9 changes: 0 additions & 9 deletions src/lib/components/markdown/h5.svelte

This file was deleted.

9 changes: 0 additions & 9 deletions src/lib/components/markdown/h6.svelte

This file was deleted.

9 changes: 0 additions & 9 deletions src/lib/components/markdown/li.svelte

This file was deleted.

9 changes: 0 additions & 9 deletions src/lib/components/markdown/ol.svelte

This file was deleted.

100 changes: 77 additions & 23 deletions src/lib/components/markdown/renderer.svelte
Original file line number Diff line number Diff line change
@@ -1,34 +1,88 @@
<script lang="ts">
import Markdown, { type ComponentsMap } from 'svelte-exmarkdown';
import { gfmPlugin } from 'svelte-exmarkdown/gfm';
import Ol from './ol.svelte';
import Li from './li.svelte';
import Ul from './ul.svelte';
import Strong from './strong.svelte';
import A from './a.svelte';
import H1 from './h1.svelte';
import H2 from './h2.svelte';
import H3 from './h3.svelte';
import H4 from './h4.svelte';
import H5 from './h5.svelte';
import H6 from './h6.svelte';
import CodeBlock from '../code-block.svelte';
import { cn } from '$lib/utils/shadcn';
let { md }: { md: string } = $props();

const renderer: ComponentsMap = {
code: CodeBlock,
ol: Ol,
li: Li,
ul: Ul,
strong: Strong,
a: A,
h1: H1,
h2: H2,
h3: H3,
h4: H4,
h5: H5,
h6: H6
};
</script>

<Markdown {md} plugins={[gfmPlugin(), { renderer }]} />
<Markdown {md} plugins={[gfmPlugin(), { renderer }]}>
{#snippet ol(props)}
{@const { children, ...rest } = props}
<ol {...rest} class={cn('ml-4 list-outside list-decimal', rest.class)}>
{@render children?.()}
</ol>
{/snippet}
{#snippet ul(props)}
{@const { children, ...rest } = props}
<ul {...rest} class={cn('ml-4 list-outside list-decimal', rest.class)}>
{@render children?.()}
</ul>
{/snippet}
{#snippet li(props)}
{@const { children, ...rest } = props}
<li {...rest} class={cn('py-1', rest.class)}>
{@render children?.()}
</li>
{/snippet}

{#snippet strong(props)}
{@const { children, ...rest } = props}
<span {...rest} class={cn('font-semibold', rest.class)}>
{@render children?.()}
</span>
{/snippet}

{#snippet a(props)}
{@const { children, ...rest } = props}
<a
{...rest}
class={cn('text-blue-500 hover:underline', rest.class)}
target="_blank"
rel="noopener noreferrer"
>
{@render children?.()}
</a>
{/snippet}

{#snippet h1(props)}
{@const { children, ...rest } = props}
<h1 {...rest} class={cn('mb-2 mt-6 text-3xl font-semibold', rest.class)}>
{@render children?.()}
</h1>
{/snippet}
{#snippet h2(props)}
{@const { children, ...rest } = props}
<h2 {...rest} class={cn('mb-2 mt-6 text-2xl font-semibold', rest.class)}>
{@render children?.()}
</h2>
{/snippet}
{#snippet h3(props)}
{@const { children, ...rest } = props}
<h3 {...rest} class={cn('mb-2 mt-6 text-xl font-semibold', rest.class)}>
{@render children?.()}
</h3>
{/snippet}
{#snippet h4(props)}
{@const { children, ...rest } = props}
<h4 {...rest} class={cn('mb-2 mt-6 text-lg font-semibold', rest.class)}>
{@render children?.()}
</h4>
{/snippet}
{#snippet h5(props)}
{@const { children, ...rest } = props}
<h5 {...rest} class={cn('mb-2 mt-6 text-base font-semibold', rest.class)}>
{@render children?.()}
</h5>
{/snippet}
{#snippet h6(props)}
{@const { children, ...rest } = props}
<h6 {...rest} class={cn('mb-2 mt-6 text-sm font-semibold', rest.class)}>
{@render children?.()}
</h6>
{/snippet}
</Markdown>
9 changes: 0 additions & 9 deletions src/lib/components/markdown/strong.svelte

This file was deleted.

9 changes: 0 additions & 9 deletions src/lib/components/markdown/ul.svelte

This file was deleted.