1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-12-24 10:27:10 +02:00

Desktop, Cli: Fixes #3473: Fix filename when exporting notebook as Markdown

This commit is contained in:
Laurent Cozic 2020-07-12 19:13:08 +01:00
parent 073bd80f89
commit 8a5e6875f0
3 changed files with 21 additions and 3 deletions

View File

@ -427,4 +427,21 @@ describe('services_InteropService', function() {
expect(await shim.fsDriver().exists(`${outDir}/ジョプリン/ジョプリン.md`)).toBe(true); expect(await shim.fsDriver().exists(`${outDir}/ジョプリン/ジョプリン.md`)).toBe(true);
})); }));
it('should export a notebook as MD', asyncTest(async () => {
const folder1 = await Folder.save({ title: 'testexportfolder' });
await Note.save({ title: 'textexportnote1', parent_id: folder1.id });
await Note.save({ title: 'textexportnote2', parent_id: folder1.id });
const service = new InteropService();
await service.export({
path: exportDir(),
format: 'md',
sourceFolderIds: [folder1.id],
});
expect(await shim.fsDriver().exists(`${exportDir()}/testexportfolder/textexportnote1.md`)).toBe(true);
expect(await shim.fsDriver().exists(`${exportDir()}/testexportfolder/textexportnote2.md`)).toBe(true);
}));
}); });

View File

@ -15,7 +15,7 @@ class InteropService_Exporter_Md extends InteropService_Exporter_Base {
await shim.fsDriver().mkdir(this.resourceDir_); await shim.fsDriver().mkdir(this.resourceDir_);
} }
async makeDirPath_(item, pathPart = null) { async makeDirPath_(item, pathPart = null, findUniqueFilename = true) {
let output = ''; let output = '';
while (true) { while (true) {
if (item.type_ === BaseModel.TYPE_FOLDER) { if (item.type_ === BaseModel.TYPE_FOLDER) {
@ -23,7 +23,7 @@ class InteropService_Exporter_Md extends InteropService_Exporter_Base {
output = `${pathPart}/${output}`; output = `${pathPart}/${output}`;
} else { } else {
output = `${friendlySafeFilename(item.title, null, true)}/${output}`; output = `${friendlySafeFilename(item.title, null, true)}/${output}`;
output = await shim.fsDriver().findUniqueFilename(output); if (findUniqueFilename) output = await shim.fsDriver().findUniqueFilename(output);
} }
} }
if (!item.parent_id) return output; if (!item.parent_id) return output;
@ -86,7 +86,7 @@ class InteropService_Exporter_Md extends InteropService_Exporter_Base {
if (!note) continue; if (!note) continue;
let notePath = `${await this.makeDirPath_(note)}${friendlySafeFilename(note.title, null, true)}.md`; let notePath = `${await this.makeDirPath_(note, null, false)}${friendlySafeFilename(note.title, null, true)}.md`;
notePath = await shim.fsDriver().findUniqueFilename(`${this.destDir_}/${notePath}`, Object.values(context.notePaths)); notePath = await shim.fsDriver().findUniqueFilename(`${this.destDir_}/${notePath}`, Object.values(context.notePaths));
context.notePaths[note.id] = notePath; context.notePaths[note.id] = notePath;
} }

View File

@ -29,6 +29,7 @@ async function main() {
console.info(`Created GitHub release: ${release.html_url}`); console.info(`Created GitHub release: ${release.html_url}`);
console.info('GitHub release page: https://github.com/laurent22/joplin/releases'); console.info('GitHub release page: https://github.com/laurent22/joplin/releases');
console.info(`To create changelog: node Tools/git-changelog.js ${version}`);
} }
main().catch((error) => { main().catch((error) => {