add list support
This commit is contained in:
parent
8281fdc4e2
commit
ac37b5dd76
4 changed files with 86 additions and 1 deletions
22
src/lib/markdown/renderers/List.svelte
Normal file
22
src/lib/markdown/renderers/List.svelte
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
<script lang="ts">
|
||||
import type { Snippet } from 'svelte';
|
||||
|
||||
interface Props {
|
||||
children?: Snippet;
|
||||
ordered?: boolean;
|
||||
loose?: boolean;
|
||||
start?: number;
|
||||
}
|
||||
|
||||
const { children, ordered }: Props = $props();
|
||||
</script>
|
||||
|
||||
{#if ordered}
|
||||
<ol class="my-2">
|
||||
{@render children?.()}
|
||||
</ol>
|
||||
{:else}
|
||||
<ul class="my-2">
|
||||
{@render children?.()}
|
||||
</ul>
|
||||
{/if}
|
||||
27
src/lib/markdown/renderers/OrderedListItem.svelte
Normal file
27
src/lib/markdown/renderers/OrderedListItem.svelte
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
<script lang="ts">
|
||||
import type { Snippet } from 'svelte';
|
||||
|
||||
interface Props {
|
||||
children?: Snippet;
|
||||
task?: boolean;
|
||||
checked?: boolean;
|
||||
listItemIndex: number;
|
||||
}
|
||||
|
||||
const { children, task, checked: initial = false, listItemIndex, ...rest }: Props = $props();
|
||||
|
||||
let checked = $derived(initial);
|
||||
</script>
|
||||
|
||||
<li class="ml-2">
|
||||
{listItemIndex + 1}. {#if task}
|
||||
<input
|
||||
type="checkbox"
|
||||
class="mr-2"
|
||||
class:hidden={!task}
|
||||
{checked}
|
||||
onclick={() => {
|
||||
checked = !checked;
|
||||
}}
|
||||
/>{/if}{@render children?.()}
|
||||
</li>
|
||||
30
src/lib/markdown/renderers/UnorderedListItem.svelte
Normal file
30
src/lib/markdown/renderers/UnorderedListItem.svelte
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
<script lang="ts">
|
||||
import type { Snippet } from 'svelte';
|
||||
|
||||
interface Props {
|
||||
children?: Snippet;
|
||||
task?: boolean;
|
||||
checked?: boolean;
|
||||
listItemIndex?: number;
|
||||
}
|
||||
|
||||
const { children, task, checked: initial = false }: Props = $props();
|
||||
|
||||
let checked = $derived(initial);
|
||||
</script>
|
||||
|
||||
<li class="ml-2">
|
||||
{#if task}
|
||||
<input
|
||||
type="checkbox"
|
||||
class="mr-2"
|
||||
class:hidden={!task}
|
||||
{checked}
|
||||
onclick={() => {
|
||||
checked = !checked;
|
||||
}}
|
||||
/>
|
||||
{:else}
|
||||
🞄
|
||||
{/if}{@render children?.()}
|
||||
</li>
|
||||
Loading…
Add table
Add a link
Reference in a new issue