diff --git a/src/lib/components/admin/ArticleAttachments.svelte b/src/lib/components/admin/ArticleAttachments.svelte new file mode 100644 index 0000000..d828ffa --- /dev/null +++ b/src/lib/components/admin/ArticleAttachments.svelte @@ -0,0 +1,264 @@ + + +
+ + diff --git a/src/lib/components/admin/MarkdownEditor.svelte b/src/lib/components/admin/MarkdownEditor.svelte index 9b065e1..0f17ab7 100644 --- a/src/lib/components/admin/MarkdownEditor.svelte +++ b/src/lib/components/admin/MarkdownEditor.svelte @@ -8,7 +8,15 @@ import { placeholder as cmPlaceholder } from '@codemirror/view'; import { addToast } from '$lib/stores/toast.svelte'; - let { value = $bindable(''), placeholderText = '支持 Markdown 格式...' } = $props(); + let { + value = $bindable(''), + placeholderText = '支持 Markdown 格式...', + onUpload + } = $props<{ + value?: string; + placeholderText?: string; + onUpload?: (file: { url: string; key: string; filename: string }) => void; + }>(); let editorContainer: HTMLDivElement; let view: EditorView; @@ -36,6 +44,9 @@ if (data.success) { insertAtCursor('`, file.name || '图片'); addToast('图片上传成功', 'success'); + if (onUpload) { + onUpload({ url: data.url, key: data.key, filename: data.filename }); + } } else { addToast(data.error || '上传失败', 'error'); }