1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-03-26 21:12:59 +02:00

Desktop: Fixes #3510: Note links would be broken after saving a note in Rich Text editor

This commit is contained in:
Laurent Cozic 2020-07-23 19:38:42 +00:00
parent 1cd86fd3ea
commit 8f8d11c9b3
3 changed files with 12 additions and 3 deletions

View File

@ -223,6 +223,7 @@ describe('models_Note', function() {
const resourceDir = Setting.value('resourceDir');
const r1 = await shim.createResourceFromPath(`${__dirname}/../tests/support/photo.jpg`);
const r2 = await shim.createResourceFromPath(`${__dirname}/../tests/support/photo.jpg`);
const note1 = await Note.save({ title: 'note1' });
const t1 = r1.updated_time;
const t2 = r2.updated_time;
@ -262,11 +263,14 @@ describe('models_Note', function() {
for (const testCase of testCases) {
const [useAbsolutePaths, input, expected] = testCase;
const internalToExternal = await Note.replaceResourceInternalToExternalLinks(input, { useAbsolutePaths });
expect(expected).toBe(internalToExternal);
expect(internalToExternal).toBe(expected, 'replaceResourceInternalToExternalLinks failed');
const externalToInternal = await Note.replaceResourceExternalToInternalLinks(internalToExternal, { useAbsolutePaths });
expect(externalToInternal).toBe(input);
expect(externalToInternal).toBe(input, 'replaceResourceExternalToInternalLinks failed');
}
const result = await Note.replaceResourceExternalToInternalLinks(`[](joplin://${note1.id})`);
expect(result).toBe(`[](:/${note1.id})`, 'replaceResourceExternalToInternalLinks failed (note link)');
}));
});

View File

@ -187,6 +187,9 @@ class Note extends BaseItem {
return `:/${id}`;
});
}
// Handles joplin://af0edffa4a60496bba1b0ba06b8fb39a
body = body.replace(/\(joplin:\/\/([a-zA-Z0-9]{32})\)/g, '(:/$1)');
}
this.logger().debug('replaceResourceExternalToInternalLinks result', body);

View File

@ -1,9 +1,11 @@
import produce, { Draft } from 'immer';
import produce, { Draft, setAutoFreeze } from 'immer';
export const defaultState = {
watchedResources: {},
};
setAutoFreeze(false); // TODO: REMOVE ONCE PLUGIN BRANCH HAS BEEN MERGED!!
const reducer = produce((draft: Draft<any>, action:any) => {
if (action.type.indexOf('RESOURCE_EDIT_WATCHER_') !== 0) return;