You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-07-16 00:14:34 +02:00
Desktop: WYSIWYG: Allow pasting images in editor
This commit is contained in:
@ -7,6 +7,9 @@ const { bridge } = require('electron').remote.require('./bridge');
|
||||
const ResourceFetcher = require('lib/services/ResourceFetcher.js');
|
||||
const { reg } = require('lib/registry.js');
|
||||
const joplinRendererUtils = require('lib/joplin-renderer').utils;
|
||||
const { clipboard } = require('electron');
|
||||
const mimeUtils = require('lib/mime-utils.js').mime;
|
||||
const md5 = require('md5');
|
||||
|
||||
export async function handleResourceDownloadMode(noteBody: string) {
|
||||
if (noteBody && Setting.value('sync.resourceDownloadMode') === 'auto') {
|
||||
@ -97,3 +100,28 @@ export function resourcesStatus(resourceInfos: any) {
|
||||
}
|
||||
return joplinRendererUtils.resourceStatusName(lowestIndex);
|
||||
}
|
||||
|
||||
export async function handlePasteEvent(event:any) {
|
||||
const output = [];
|
||||
const formats = clipboard.availableFormats();
|
||||
for (let i = 0; i < formats.length; i++) {
|
||||
const format = formats[i].toLowerCase();
|
||||
const formatType = format.split('/')[0];
|
||||
|
||||
if (formatType === 'image') {
|
||||
if (event) event.preventDefault();
|
||||
|
||||
const image = clipboard.readImage();
|
||||
|
||||
const fileExt = mimeUtils.toFileExtension(format);
|
||||
const filePath = `${Setting.value('tempDir')}/${md5(Date.now())}.${fileExt}`;
|
||||
|
||||
await shim.writeImageToFile(image, format, filePath);
|
||||
const md = await commandAttachFileToBody('', [filePath]);
|
||||
await shim.fsDriver().remove(filePath);
|
||||
|
||||
output.push(md);
|
||||
}
|
||||
}
|
||||
return output;
|
||||
}
|
||||
|
Reference in New Issue
Block a user