diff options
| -rw-r--r-- | docs/manual/csv-import.md | 35 | ||||
| -rw-r--r-- | src/client/components/ImportNotesModal.tsx | 18 |
2 files changed, 25 insertions, 28 deletions
diff --git a/docs/manual/csv-import.md b/docs/manual/csv-import.md index 6759e54..321a9c6 100644 --- a/docs/manual/csv-import.md +++ b/docs/manual/csv-import.md @@ -16,10 +16,9 @@ Kioku allows you to bulk import notes from CSV files. The first row is the header. Use the following format: ``` -deck,note_type,Field1,Field2,... +note_type,Field1,Field2,... ``` -- **deck**: Deck name (for reference only; import destination is selected in the UI) - **note_type**: Note type name (required) - **Field names**: Field names defined in the note type @@ -28,27 +27,27 @@ deck,note_type,Field1,Field2,... Rows 2 and onwards contain the notes to import. ```csv -deck,note_type,Front,Back -MyDeck,Basic,hello,world -MyDeck,Basic,goodbye,farewell +note_type,Front,Back +Basic,hello,world +Basic,goodbye,farewell ``` ### Example: Basic Note Type ```csv -deck,note_type,Front,Back -Vocabulary,Basic,apple,a round fruit -Vocabulary,Basic,banana,a yellow fruit -Vocabulary,Basic,orange,a citrus fruit +note_type,Front,Back +Basic,apple,a round fruit +Basic,banana,a yellow fruit +Basic,orange,a citrus fruit ``` ### Example: Basic (and reversed card) Note Type ```csv -deck,note_type,Front,Back -Capitals,Basic (and reversed card),Tokyo,Japan -Capitals,Basic (and reversed card),Paris,France -Capitals,Basic (and reversed card),London,United Kingdom +note_type,Front,Back +Basic (and reversed card),Tokyo,Japan +Basic (and reversed card),Paris,France +Basic (and reversed card),London,United Kingdom ``` ## CSV Specification @@ -66,17 +65,17 @@ Kioku's CSV parser is RFC 4180 compliant. Use double quotes (`"`) to include commas or newlines within a field: ```csv -deck,note_type,Front,Back -MyDeck,Basic,"Hello, World!",example with comma -MyDeck,Basic,"Line 1 +note_type,Front,Back +Basic,"Hello, World!",example with comma +Basic,"Line 1 Line 2",example with newline ``` To include a double quote within a field, escape it by doubling: ```csv -deck,note_type,Front,Back -MyDeck,Basic,"He said ""Hello""",example with quotes +note_type,Front,Back +Basic,"He said ""Hello""",example with quotes ``` ## Important Notes diff --git a/src/client/components/ImportNotesModal.tsx b/src/client/components/ImportNotesModal.tsx index a7a88c5..2eb0922 100644 --- a/src/client/components/ImportNotesModal.tsx +++ b/src/client/components/ImportNotesModal.tsx @@ -142,22 +142,20 @@ export function ImportNotesModal({ const { headers, rows } = parseResult.data; - // Validate headers: must have deck, note_type, and at least one field - if (headers.length < 3) { - setError( - "CSV must have at least 3 columns: deck, note_type, and field(s)", - ); + // Validate headers: must have note_type and at least one field + if (headers.length < 2) { + setError("CSV must have at least 2 columns: note_type and field(s)"); setPhase("upload"); return; } - if (headers[0] !== "deck" || headers[1] !== "note_type") { - setError("First two columns must be 'deck' and 'note_type'"); + if (headers[0] !== "note_type") { + setError("First column must be 'note_type'"); setPhase("upload"); return; } - const fieldNames = headers.slice(2); + const fieldNames = headers.slice(1); const validated: ValidatedRow[] = []; const errors: ValidationError[] = []; @@ -316,9 +314,9 @@ export function ImportNotesModal({ <div className="bg-ivory rounded-lg px-4 py-3 text-sm text-muted"> <p className="font-medium text-slate mb-1">Expected format:</p> <code className="text-xs"> - deck,note_type,Front,Back + note_type,Front,Back <br /> - MyDeck,Basic,hello,world + Basic,hello,world </code> </div> </div> |
