You've already forked joplin
							
							
				mirror of
				https://github.com/laurent22/joplin.git
				synced 2025-10-31 00:07:48 +02:00 
			
		
		
		
	Desktop, Cli: Fixes #3473: Fix filename when exporting notebook as Markdown
This commit is contained in:
		| @@ -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); | ||||||
|  | 	})); | ||||||
|  |  | ||||||
| }); | }); | ||||||
|   | |||||||
| @@ -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; | ||||||
| 			} | 			} | ||||||
|   | |||||||
| @@ -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) => { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user