I am migrating my codebase from Svelte 4 to Svelte 5.
I had the following code:
import MarkdownLinkRenderer from '$lib/MarkdownLinkRenderer.svelte';
export function createMarkdownLinkRenderer(styles: string) {
return class extends MarkdownLinkRenderer {
constructor(options: { target: Element; props: { href: string; text: string } }) {
super(options);
this.$set({ className: styles });
}
};
}
Which was used as renderer with the svelte-markdown package (replaced by @humanspeak/svelte-markdown for compatibility with Svelte 5):
<script lang="ts">
const renderers = {
link: createMarkdownLinkRenderer('text-blue-56 hover:underline')
};
</script>
<Markdown source={notification.message} options={{ gfm: true, breaks: true }} {renderers} />
How can I convert my createMarkdownLinkRenderer to work with Svelte 5, since components are no longer classes?