2024-08-18 18:59:59 +00:00
|
|
|
<script>
|
|
|
|
|
import { marked } from 'marked';
|
|
|
|
|
import { replaceTokens, processResponseContent } from '$lib/utils';
|
|
|
|
|
import { user } from '$lib/stores';
|
|
|
|
|
|
2024-09-30 10:50:53 +00:00
|
|
|
import markedExtension from '$lib/utils/marked/extension';
|
|
|
|
|
import markedKatexExtension from '$lib/utils/marked/katex-extension';
|
|
|
|
|
|
2024-08-18 18:59:59 +00:00
|
|
|
import MarkdownTokens from './Markdown/MarkdownTokens.svelte';
|
|
|
|
|
|
2025-03-28 19:18:27 +00:00
|
|
|
export let id = '';
|
2024-08-18 18:59:59 +00:00
|
|
|
export let content;
|
2025-07-18 12:38:43 +00:00
|
|
|
export let done = true;
|
2024-08-18 18:59:59 +00:00
|
|
|
export let model = null;
|
2024-10-05 19:07:45 +00:00
|
|
|
export let save = false;
|
2025-05-16 17:47:43 +00:00
|
|
|
export let preview = false;
|
2025-08-09 21:03:02 +00:00
|
|
|
export let topPadding = false;
|
2024-08-18 18:59:59 +00:00
|
|
|
|
2024-11-22 01:58:29 +00:00
|
|
|
export let sourceIds = [];
|
2025-02-14 06:37:01 +00:00
|
|
|
|
2025-05-16 23:14:26 +00:00
|
|
|
export let onSave = () => {};
|
2025-04-18 09:38:53 +00:00
|
|
|
export let onUpdate = () => {};
|
2025-05-16 23:14:26 +00:00
|
|
|
|
2025-05-16 17:47:43 +00:00
|
|
|
export let onPreview = () => {};
|
2025-04-18 09:38:53 +00:00
|
|
|
|
2024-11-22 01:58:29 +00:00
|
|
|
export let onSourceClick = () => {};
|
2025-02-14 06:37:01 +00:00
|
|
|
export let onTaskClick = () => {};
|
2024-11-22 01:58:29 +00:00
|
|
|
|
2024-08-18 18:59:59 +00:00
|
|
|
let tokens = [];
|
|
|
|
|
|
|
|
|
|
const options = {
|
2025-06-16 16:08:20 +00:00
|
|
|
throwOnError: false,
|
|
|
|
|
breaks: true
|
2024-08-18 18:59:59 +00:00
|
|
|
};
|
|
|
|
|
|
2024-09-30 10:50:53 +00:00
|
|
|
marked.use(markedKatexExtension(options));
|
|
|
|
|
marked.use(markedExtension(options));
|
2024-08-18 18:59:59 +00:00
|
|
|
|
|
|
|
|
$: (async () => {
|
|
|
|
|
if (content) {
|
|
|
|
|
tokens = marked.lexer(
|
2025-02-14 06:57:12 +00:00
|
|
|
replaceTokens(processResponseContent(content), sourceIds, model?.name, $user?.name)
|
2024-08-18 18:59:59 +00:00
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
})();
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
{#key id}
|
2025-05-16 17:47:43 +00:00
|
|
|
<MarkdownTokens
|
|
|
|
|
{tokens}
|
|
|
|
|
{id}
|
2025-07-18 12:38:43 +00:00
|
|
|
{done}
|
2025-05-16 17:47:43 +00:00
|
|
|
{save}
|
|
|
|
|
{preview}
|
2025-08-09 21:03:02 +00:00
|
|
|
{topPadding}
|
2025-05-16 17:47:43 +00:00
|
|
|
{onTaskClick}
|
|
|
|
|
{onSourceClick}
|
2025-05-16 23:14:26 +00:00
|
|
|
{onSave}
|
2025-05-16 17:47:43 +00:00
|
|
|
{onUpdate}
|
|
|
|
|
{onPreview}
|
|
|
|
|
/>
|
2024-08-18 18:59:59 +00:00
|
|
|
{/key}
|