diff --git a/src/services/export/zip.ts b/src/services/export/zip.ts index f6ffb45d1..a21572b04 100644 --- a/src/services/export/zip.ts +++ b/src/services/export/zip.ts @@ -407,6 +407,10 @@ ${markdownContent}`; } function saveNavigation(rootMeta: NoteMeta, navigationMeta: NoteMeta) { + if (!navigationMeta.dataFileName) { + return; + } + function saveNavigationInner(meta: NoteMeta) { let html = "
  • "; @@ -451,6 +455,10 @@ ${markdownContent}`; let firstNonEmptyNote; let curMeta = rootMeta; + if (!indexMeta.dataFileName) { + return; + } + while (!firstNonEmptyNote) { if (curMeta.dataFileName && curMeta.noteId) { firstNonEmptyNote = getNoteTargetUrl(curMeta.noteId, rootMeta); @@ -479,6 +487,10 @@ ${markdownContent}`; } function saveCss(rootMeta: NoteMeta, cssMeta: NoteMeta) { + if (!cssMeta.dataFileName) { + return; + } + const cssContent = fs.readFileSync(`${RESOURCE_DIR}/libraries/ckeditor/ckeditor-content.css`); archive.append(cssContent, { name: cssMeta.dataFileName }); diff --git a/src/services/utils.spec.ts b/src/services/utils.spec.ts index 3451a881d..a509b2b0a 100644 --- a/src/services/utils.spec.ts +++ b/src/services/utils.spec.ts @@ -167,12 +167,12 @@ describe("#getContentDisposition", () => { const defaultFallBackDisposition = `file; filename="file"; filename*=UTF-8''file`; const testCases: TestCase[] = [ [ - "when passed filename is empty, it should fallback to default value 'file'", + "when passed filename is empty, it should fallback to default value 'file'", [" "], defaultFallBackDisposition ], [ - "when passed filename '..' would cause sanitized filename to be empty, it should fallback to default value 'file'", + "when passed filename '..' would cause sanitized filename to be empty, it should fallback to default value 'file'", [".."], defaultFallBackDisposition ], @@ -304,19 +304,16 @@ describe("#getNoteTitle", () => { ], [ "when a noteMeta object is passed, it should use the title from the noteMeta, if present", - //@ts-expect-error - passing in incomplete noteMeta - but we only care about the title prop here ["test_file.md", true, { title: "some other title"}], "some other title" ], [ "when a noteMeta object is passed, but the title prop is empty, it should try to handle the filename as if no noteMeta was passed", - //@ts-expect-error - passing in incomplete noteMeta - but we only care about the title prop here ["test_file.md", true, { title: ""}], "test file" ], [ "when a noteMeta object is passed, but the title prop is empty, it should try to handle the filename as if no noteMeta was passed", - //@ts-expect-error - passing in incomplete noteMeta - but we only care about the title prop here ["test_file.json", false, { title: " "}], "test_file.json" ] @@ -627,4 +624,4 @@ describe("#formatDownloadTitle", () => { expect(actual).toStrictEqual(expected); }); }); -}); \ No newline at end of file +});