feat(journals): implement centralized export templates and bulk interop

- Added 'ae_journals_export_templates.ts' with Markdown, HTML, and JSON support
- Refactored 'ae_comp__modal_journal_export.svelte' to use the new template system
- Optimized bulk export with automated template selection based on Journal type
- Integrated 'Import Entries' action directly into the Journal menu
- Updated project documentation to reflect portability features and implementation status
This commit is contained in:
Scott Idem
2026-01-14 12:55:15 -05:00
parent b80cbb7c2b
commit 56fa003382
6 changed files with 258 additions and 79 deletions

View File

@@ -3,7 +3,7 @@
import { goto } from '$app/navigation';
// *** Import other supporting libraries
import { BookPlus, BookOpenText, FilePlus, Menu, Pencil, FileDown } from '@lucide/svelte';
import { BookPlus, BookOpenText, FilePlus, Menu, Pencil, FileDown, FileUp } from '@lucide/svelte';
// *** Import Aether specific variables and functions
import { ae_util } from '$lib/ae_utils/ae_utils';
@@ -30,9 +30,10 @@
lq__journal_obj: any;
lq__journal_entry_obj_li: any;
onShowExport?: () => void;
onShowImport?: () => void;
}
let { log_lvl = 0, lq__journal_obj, lq__journal_entry_obj_li, onShowExport }: Props = $props();
let { log_lvl = 0, lq__journal_obj, lq__journal_entry_obj_li, onShowExport, onShowImport }: Props = $props();
// let ae_promises: key_val = {};
// let ae_tmp: key_val = {};
@@ -286,6 +287,24 @@
<span class="hidden md:inline"> Export Entries </span>
</button>
{/if}
<button
type="button"
onclick={() => {
show_menu = false;
onShowImport?.();
}}
class="
btn btn-sm
preset-tonal-secondary border border-secondary-500
hover:preset-filled-secondary-500
transition
"
title="Import journal entries from files"
>
<FileUp />
<span class="hidden md:inline"> Import Entries </span>
</button>
</div>
<!-- Set Journal private_passcode (string) -->