diff options
| author | Mohamed Bassem <me@mbassem.com> | 2025-11-15 16:47:20 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-15 16:47:20 +0000 |
| commit | 0c80f515ec9e20c70b69380031886ccc0e4bc06d (patch) | |
| tree | a5f1c9a3c063761671ede8935d9913e8f51c3577 /apps/web/components/settings | |
| parent | 4350666961132ffe68afea8686b567f361a58f57 (diff) | |
| download | karakeep-0c80f515ec9e20c70b69380031886ccc0e4bc06d.tar.zst | |
feat: import from mymind (#2138)
* feat: add mymind importer support
This commit adds support for importing bookmarks from mymind CSV exports.
Changes:
- Added mymind to ImportSource type in parsers.ts
- Implemented parseMymindBookmarkFile() to parse mymind CSV format
- Added mymind case to parseImportFile() switch statement
- Added mymind import card to ImportExport UI component
- Added English translation for mymind import description
- Added comprehensive test for mymind CSV parsing
The mymind CSV format includes:
- WebPages (URLs with optional notes)
- Notes (text content without URLs)
- Tags (comma-separated)
- Created timestamps (ISO format)
Fixes #654
* format
* use zod for parsing
---------
Co-authored-by: Claude <noreply@anthropic.com>
Diffstat (limited to 'apps/web/components/settings')
| -rw-r--r-- | apps/web/components/settings/ImportExport.tsx | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/apps/web/components/settings/ImportExport.tsx b/apps/web/components/settings/ImportExport.tsx index ee220342..7d127443 100644 --- a/apps/web/components/settings/ImportExport.tsx +++ b/apps/web/components/settings/ImportExport.tsx @@ -228,6 +228,23 @@ export function ImportExportRow() { </FilePickerButton> </ImportCard> <ImportCard + text="mymind" + description={t("settings.import.import_bookmarks_from_mymind_export")} + > + <FilePickerButton + size={"sm"} + loading={false} + accept=".csv" + multiple={false} + className="flex items-center gap-2" + onFileSelect={(file) => + runUploadBookmarkFile({ file, source: "mymind" }) + } + > + <p>Import</p> + </FilePickerButton> + </ImportCard> + <ImportCard text="Karakeep" description={t( "settings.import.import_bookmarks_from_karakeep_export", |
