feat(phase9): HistoryPage .md export via save dialog
Replaces the clipboard-only path with saveTranscriptAsMarkdown. User picks the location via the OS save dialog; cancellation leaves no side effect, no toast, no fallback. Toast on success names the file. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -8,6 +8,10 @@
|
||||
import {
|
||||
deriveAutoTags, buildFrontmatter, buildMarkdown, normaliseTag,
|
||||
} from "$lib/utils/frontmatter.js";
|
||||
import {
|
||||
saveTranscriptAsMarkdown,
|
||||
exportTranscriptsToDir,
|
||||
} from "$lib/utils/saveMarkdown";
|
||||
import { getPreferences } from "$lib/stores/preferences.svelte.js";
|
||||
import { clampTextLines, measurePreWrap } from "$lib/utils/textMeasure.js";
|
||||
import { bodyPretextLineHeight, pretextFontShorthand } from "$lib/utils/accessibilityTypography.js";
|
||||
@@ -341,15 +345,7 @@
|
||||
}
|
||||
|
||||
async function exportMarkdown(item) {
|
||||
const md = buildMarkdown(item);
|
||||
try {
|
||||
await navigator.clipboard.writeText(md);
|
||||
} catch {
|
||||
try {
|
||||
await invoke("copy_to_clipboard", { text: md });
|
||||
} catch {}
|
||||
}
|
||||
toasts.info("Markdown copied to clipboard — paste into Obsidian or save as .md");
|
||||
await saveTranscriptAsMarkdown(item);
|
||||
}
|
||||
|
||||
async function openEditor(item) {
|
||||
|
||||
Reference in New Issue
Block a user