clipper now creates notes with image attachments instead of image notes

This commit is contained in:
zadam 2023-08-08 23:42:47 +02:00
parent fefb059564
commit 00eaa16985
3 changed files with 64 additions and 60 deletions

102
package-lock.json generated
View File

@ -1,16 +1,16 @@
{
"name": "trilium",
"version": "0.61.2-beta",
"version": "0.61.3-beta",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "trilium",
"version": "0.61.2-beta",
"version": "0.61.3-beta",
"hasInstallScript": true,
"license": "AGPL-3.0-only",
"dependencies": {
"@braintree/sanitize-url": "6.0.2",
"@braintree/sanitize-url": "6.0.4",
"@electron/remote": "2.0.10",
"@excalidraw/excalidraw": "0.15.2",
"archiver": "5.3.1",
@ -32,7 +32,7 @@
"escape-html": "1.0.3",
"express": "4.18.2",
"express-partial-content": "1.0.2",
"express-rate-limit": "6.8.1",
"express-rate-limit": "6.9.0",
"express-session": "1.17.3",
"fs-extra": "11.1.1",
"helmet": "7.0.0",
@ -47,7 +47,7 @@
"jimp": "0.22.10",
"joplin-turndown-plugin-gfm": "1.0.12",
"jsdom": "22.1.0",
"marked": "5.1.2",
"marked": "7.0.1",
"mime-types": "2.1.35",
"multer": "1.4.5-lts.1",
"node-abi": "3.45.0",
@ -79,13 +79,13 @@
},
"devDependencies": {
"cross-env": "7.0.3",
"electron": "25.3.2",
"electron": "25.4.0",
"electron-builder": "24.6.3",
"electron-packager": "17.1.1",
"electron-rebuild": "3.2.9",
"eslint": "8.46.0",
"eslint-config-airbnb-base": "15.0.0",
"eslint-config-prettier": "8.9.0",
"eslint-config-prettier": "9.0.0",
"eslint-plugin-import": "2.28.0",
"eslint-plugin-jsonc": "2.9.0",
"eslint-plugin-prettier": "5.0.0",
@ -97,8 +97,8 @@
"lint-staged": "13.2.3",
"lorem-ipsum": "2.0.8",
"nodemon": "3.0.1",
"prettier": "3.0.0",
"rcedit": "3.0.1",
"prettier": "3.0.1",
"rcedit": "3.1.0",
"webpack": "5.88.2",
"webpack-cli": "5.1.4"
},
@ -128,9 +128,9 @@
}
},
"node_modules/@braintree/sanitize-url": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.2.tgz",
"integrity": "sha512-Tbsj02wXCbqGmzdnXNk0SOF19ChhRU70BsroIi4Pm6Ehp56in6vch94mfbdQ17DozxkL3BAVjbZ4Qc1a0HFRAg=="
"version": "6.0.4",
"resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz",
"integrity": "sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A=="
},
"node_modules/@develar/schema-utils": {
"version": "2.6.5",
@ -4254,9 +4254,9 @@
}
},
"node_modules/electron": {
"version": "25.3.2",
"resolved": "https://registry.npmjs.org/electron/-/electron-25.3.2.tgz",
"integrity": "sha512-xiktJvXraaE/ARf2OVHFyTze1TksSbsbJgOaBtdIiBvUduez6ipATEPIec8Msz1n6eQ+xqYb6YF8tDuIZtJSPw==",
"version": "25.4.0",
"resolved": "https://registry.npmjs.org/electron/-/electron-25.4.0.tgz",
"integrity": "sha512-VLTRxDhL4UvQbqM7pTNENnJo62cdAPZT92N+B7BZQ5Xfok1wuVPEewIjBot4K7U3EpLUuHn1veeLzho3ihiP+Q==",
"hasInstallScript": true,
"dependencies": {
"@electron/get": "^2.0.0",
@ -5113,9 +5113,9 @@
}
},
"node_modules/eslint-config-prettier": {
"version": "8.9.0",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.9.0.tgz",
"integrity": "sha512-+sbni7NfVXnOpnRadUA8S28AUlsZt9GjgFvABIRL9Hkn8KqNzOp+7Lw4QWtrwn20KzU3wqu1QoOj2m+7rKRqkA==",
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz",
"integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==",
"dev": true,
"bin": {
"eslint-config-prettier": "bin/cli.js"
@ -5661,9 +5661,9 @@
}
},
"node_modules/express-rate-limit": {
"version": "6.8.1",
"resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-6.8.1.tgz",
"integrity": "sha512-xJyudsE60CsDShK74Ni1MxsldYaIoivmG3ieK2tAckMsYCBewEuGalss6p/jHmFFnqM9xd5ojE0W2VlanxcOKg==",
"version": "6.9.0",
"resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-6.9.0.tgz",
"integrity": "sha512-AnISR3V8qy4gpKM62/TzYdoFO9NV84fBx0POXzTryHU/qGUJBWuVGd+JhbvtVmKBv37t8/afmqdnv16xWoQxag==",
"engines": {
"node": ">= 14.0.0"
},
@ -8821,9 +8821,9 @@
}
},
"node_modules/marked": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/marked/-/marked-5.1.2.tgz",
"integrity": "sha512-ahRPGXJpjMjwSOlBoTMZAK7ATXkli5qCPxZ21TG44rx1KEo44bii4ekgTDQPNRQ4Kh7JMb9Ub1PVk1NxRSsorg==",
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/marked/-/marked-7.0.1.tgz",
"integrity": "sha512-m8Aze620Ts62yaciz2DghZGUkUfdgvSNRicS2/XtQkStMNoce3NWjOD2b/jWF32+XXK6udM6pRhv2dKNlneAFA==",
"bin": {
"marked": "bin/marked.js"
},
@ -10210,9 +10210,9 @@
}
},
"node_modules/prettier": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz",
"integrity": "sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==",
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.1.tgz",
"integrity": "sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ==",
"dev": true,
"bin": {
"prettier": "bin/prettier.cjs"
@ -10471,9 +10471,9 @@
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
},
"node_modules/rcedit": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/rcedit/-/rcedit-3.0.1.tgz",
"integrity": "sha512-XM0Jv40/y4hVAqj/MO70o/IWs4uOsaSoo2mLyk3klFDW+SStLnCtzuQu+1OBTIMGlM8CvaK9ftlYCp6DJ+cMsw==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/rcedit/-/rcedit-3.1.0.tgz",
"integrity": "sha512-WRlRdY1qZbu1L11DklT07KuHfRk42l0NFFJdaExELEu4fEQ982bP5Z6OWGPj/wLLIuKRQDCxZJGAwoFsxhZhNA==",
"dev": true,
"dependencies": {
"cross-spawn-windows-exe": "^1.1.0"
@ -13253,9 +13253,9 @@
"dev": true
},
"@braintree/sanitize-url": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.2.tgz",
"integrity": "sha512-Tbsj02wXCbqGmzdnXNk0SOF19ChhRU70BsroIi4Pm6Ehp56in6vch94mfbdQ17DozxkL3BAVjbZ4Qc1a0HFRAg=="
"version": "6.0.4",
"resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz",
"integrity": "sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A=="
},
"@develar/schema-utils": {
"version": "2.6.5",
@ -16442,9 +16442,9 @@
}
},
"electron": {
"version": "25.3.2",
"resolved": "https://registry.npmjs.org/electron/-/electron-25.3.2.tgz",
"integrity": "sha512-xiktJvXraaE/ARf2OVHFyTze1TksSbsbJgOaBtdIiBvUduez6ipATEPIec8Msz1n6eQ+xqYb6YF8tDuIZtJSPw==",
"version": "25.4.0",
"resolved": "https://registry.npmjs.org/electron/-/electron-25.4.0.tgz",
"integrity": "sha512-VLTRxDhL4UvQbqM7pTNENnJo62cdAPZT92N+B7BZQ5Xfok1wuVPEewIjBot4K7U3EpLUuHn1veeLzho3ihiP+Q==",
"requires": {
"@electron/get": "^2.0.0",
"@types/node": "^18.11.18",
@ -17181,9 +17181,9 @@
}
},
"eslint-config-prettier": {
"version": "8.9.0",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.9.0.tgz",
"integrity": "sha512-+sbni7NfVXnOpnRadUA8S28AUlsZt9GjgFvABIRL9Hkn8KqNzOp+7Lw4QWtrwn20KzU3wqu1QoOj2m+7rKRqkA==",
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz",
"integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==",
"dev": true,
"requires": {}
},
@ -17537,9 +17537,9 @@
"requires": {}
},
"express-rate-limit": {
"version": "6.8.1",
"resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-6.8.1.tgz",
"integrity": "sha512-xJyudsE60CsDShK74Ni1MxsldYaIoivmG3ieK2tAckMsYCBewEuGalss6p/jHmFFnqM9xd5ojE0W2VlanxcOKg==",
"version": "6.9.0",
"resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-6.9.0.tgz",
"integrity": "sha512-AnISR3V8qy4gpKM62/TzYdoFO9NV84fBx0POXzTryHU/qGUJBWuVGd+JhbvtVmKBv37t8/afmqdnv16xWoQxag==",
"requires": {}
},
"express-session": {
@ -19842,9 +19842,9 @@
"requires": {}
},
"marked": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/marked/-/marked-5.1.2.tgz",
"integrity": "sha512-ahRPGXJpjMjwSOlBoTMZAK7ATXkli5qCPxZ21TG44rx1KEo44bii4ekgTDQPNRQ4Kh7JMb9Ub1PVk1NxRSsorg=="
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/marked/-/marked-7.0.1.tgz",
"integrity": "sha512-m8Aze620Ts62yaciz2DghZGUkUfdgvSNRicS2/XtQkStMNoce3NWjOD2b/jWF32+XXK6udM6pRhv2dKNlneAFA=="
},
"matcher": {
"version": "3.0.0",
@ -20889,9 +20889,9 @@
"dev": true
},
"prettier": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz",
"integrity": "sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==",
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.1.tgz",
"integrity": "sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ==",
"dev": true
},
"prettier-linter-helpers": {
@ -21074,9 +21074,9 @@
}
},
"rcedit": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/rcedit/-/rcedit-3.0.1.tgz",
"integrity": "sha512-XM0Jv40/y4hVAqj/MO70o/IWs4uOsaSoo2mLyk3klFDW+SStLnCtzuQu+1OBTIMGlM8CvaK9ftlYCp6DJ+cMsw==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/rcedit/-/rcedit-3.1.0.tgz",
"integrity": "sha512-WRlRdY1qZbu1L11DklT07KuHfRk42l0NFFJdaExELEu4fEQ982bP5Z6OWGPj/wLLIuKRQDCxZJGAwoFsxhZhNA==",
"dev": true,
"requires": {
"cross-spawn-windows-exe": "^1.1.0"

View File

@ -31,7 +31,7 @@
"prepare": "husky install || echo 'Husky install failed, expected on flatpak build'"
},
"dependencies": {
"@braintree/sanitize-url": "6.0.2",
"@braintree/sanitize-url": "6.0.4",
"@electron/remote": "2.0.10",
"@excalidraw/excalidraw": "0.15.2",
"archiver": "5.3.1",
@ -53,7 +53,7 @@
"escape-html": "1.0.3",
"express": "4.18.2",
"express-partial-content": "1.0.2",
"express-rate-limit": "6.8.1",
"express-rate-limit": "6.9.0",
"express-session": "1.17.3",
"fs-extra": "11.1.1",
"helmet": "7.0.0",
@ -68,7 +68,7 @@
"jimp": "0.22.10",
"joplin-turndown-plugin-gfm": "1.0.12",
"jsdom": "22.1.0",
"marked": "5.1.2",
"marked": "7.0.1",
"mime-types": "2.1.35",
"multer": "1.4.5-lts.1",
"node-abi": "3.45.0",
@ -97,13 +97,13 @@
},
"devDependencies": {
"cross-env": "7.0.3",
"electron": "25.3.2",
"electron": "25.4.0",
"electron-builder": "24.6.3",
"electron-packager": "17.1.1",
"electron-rebuild": "3.2.9",
"eslint": "8.46.0",
"eslint-config-airbnb-base": "15.0.0",
"eslint-config-prettier": "8.9.0",
"eslint-config-prettier": "9.0.0",
"eslint-plugin-import": "2.28.0",
"eslint-plugin-jsonc": "2.9.0",
"eslint-plugin-prettier": "5.0.0",
@ -115,8 +115,8 @@
"lint-staged": "13.2.3",
"lorem-ipsum": "2.0.8",
"nodemon": "3.0.1",
"prettier": "3.0.0",
"rcedit": "3.0.1",
"prettier": "3.0.1",
"rcedit": "3.1.0",
"webpack": "5.88.2",
"webpack-cli": "5.1.4"
},

View File

@ -127,7 +127,11 @@ function createNote(req) {
const existingContent = note.getContent();
const rewrittenContent = processContent(images, note, content);
note.setContent(`${existingContent}${existingContent.trim() ? "<br/>" : ""}${rewrittenContent}`);
const newContent = `${existingContent}${existingContent.trim() ? "<br/>" : ""}${rewrittenContent}`;
note.setContent(newContent);
const noteService = require("../../services/notes");
noteService.asyncPostProcessContent(note, newContent); // to mark attachments as used
return {
noteId: note.noteId
@ -154,7 +158,7 @@ function processContent(images, note, content) {
const attachment = imageService.saveImageToAttachment(note.noteId, buffer, filename, true);
const sanitizedTitle = attachment.title.replace(/[^a-z0-9-.]/gi, "");
const url = `<img src="api/attachments/${attachment.attachmentId}/image/${sanitizedTitle}"/>`;
const url = `api/attachments/${attachment.attachmentId}/image/${sanitizedTitle}`;
log.info(`Replacing '${imageId}' with '${url}' in note '${note.noteId}'`);