Commit graph

5300 commits

Author SHA1 Message Date
Tom 9771b441ad missing path2d support for freedawings, remove node-side rendering, allow async getContent()
* ## Excalidraw and SVG
 * 2022-04-16 - @thfrei
 *
 * Known issues:
 *  - excalidraw-to-svg (node.js) does not render any hand drawn (freedraw) paths. There is an issue with
 *    Path2D object not present in node-canvas library used by jsdom. (See Trilium PR for samples and other issues
 *    in respective library. Link will be added later). Related links:
 *     - https://github.com/Automattic/node-canvas/pull/2013
 *     - https://github.com/google/canvas-5-polyfill
 *     - https://github.com/Automattic/node-canvas/issues/1116
 *     - https://www.npmjs.com/package/path2d-polyfill
 *  - excalidraw-to-svg (node.js) takes quite some time to load an image (1-2s)
 *  - excalidraw-utils (browser) does render freedraw, however NOT freedraw with background
 *
 * Due to this issues, we opt to use **only excalidraw in the frontend**. Upon saving, we will also get the SVG
 * output from the live excalidraw instance. We will save this **SVG side by side the native excalidraw format
 * in the trilium note**.
 *
 * Pro: we will combat bit-rot. Showing the SVG will be very fast, since it is already rendered.
 * Con: The note will get bigger (maybe +30%?), we will generate more bandwith.
 *      (However, using trilium desktop instance, does not care too much about bandwidth. Size increase is probably
 *       acceptable, as a trade off.)
2022-04-19 00:21:20 +02:00
Tom c295fdb142 rename excalidraw icon libraries 2022-04-19 00:20:21 +02:00
Tom Free ee7aa3d3da remove manually added, static libraries for excalidraw, react, etc. 2022-04-19 00:20:21 +02:00
Tom Free e437a9d70f note about buggy excalidraw-utils for browser svg rendering 2022-04-19 00:20:21 +02:00
Tom Free a8655fcd27 add canvas-note-type at some missing places after rebase 2022-04-19 00:20:21 +02:00
Tom aefc9f1593 add excalidraw excalidraw/utils, react and react-dom as npm-dependencies 2022-04-19 00:20:13 +02:00
Tom Free 73671671d7 remove obsolete fabric/hammer/jquery from canvas-note early trials 2022-04-19 00:17:39 +02:00
Tom f53a93e828 make :filename for GETing an image optional 2022-04-19 00:17:39 +02:00
Tom e156c6292b improve status 500 for canvas-note api/image.js 2022-04-19 00:17:39 +02:00
Tom e365521d5e add support for sharing canvas-note 2022-04-19 00:17:39 +02:00
Tom f354821f25 basic support for using api/images with canvas-note
http://localhost:8080/api/images/<noteId>/some-rando-text
2022-04-19 00:17:16 +02:00
Tom 82e278a2a2 add comment about excalidraw-error message on insert 2022-04-19 00:13:27 +02:00
Thomas Frei b4d4606c73 add a selection of excalidraw-drawing-libraries 2022-04-19 00:13:27 +02:00
Thomas Frei b14b7b6ad1 add _meta to note, in case it got changed to type json 2022-04-19 00:13:27 +02:00
Thomas Frei 32aa7bb540 ensure that fresh note has empty scene, no bleeding 2022-04-19 00:13:27 +02:00
Thomas Frei 300f4ad357 remove obsolete comments / code 2022-04-19 00:13:27 +02:00
Tom cf6b5c3b6e ensure only active/referenced files are saved 2022-04-19 00:13:27 +02:00
Tom f1c9dda366 make sure nothing breaks on fresh empty note or note that has already content 2022-04-19 00:13:27 +02:00
Tom 7f01032b6d add support for render excalidraw in book view (copy of note_revision)
maybe one should think about extract a function there and make it reusable
2022-04-19 00:13:27 +02:00
Tom f08afd4723 remove empty line break 2022-04-19 00:13:27 +02:00
Tom afe2a03aef fix initial load and safe issue by storing noteId 2022-04-19 00:13:27 +02:00
Tom 272bb136d8 make canvas_note height 100% 2022-04-19 00:13:27 +02:00
Tom 27d0388d79 add some comments 2022-04-19 00:13:26 +02:00
Tom 025032de42 make note revisions work 2022-04-19 00:13:26 +02:00
Tom 15a3b42124 remove some debug/testing code 2022-04-19 00:13:26 +02:00
Tom 4266156cee fix curser mismatch by manually setting offset 2022-04-19 00:13:26 +02:00
Tom 45a66ab694 some notes about loading and container width 2022-04-19 00:13:26 +02:00
Tom 49f4ce7149 example for trilium image-link usage and svg export 2022-04-19 00:13:26 +02:00
Tom 220df662ad make pasted images in excalidraw work (save and load "files") 2022-04-19 00:13:26 +02:00
Tom 6e535bac05 ensure isNewSceneVersion() does not increment currentVersion 2022-04-19 00:13:26 +02:00
Tom 3b1dcc7199 compare sceneVersion to omit unnecessary save/reloads of content 2022-04-19 00:13:26 +02:00
Tom ae75ac424f add noteid to console to differentiate logs 2022-04-19 00:13:26 +02:00
Tom 5c46fe792d use widget element to render for multiple excalidraw instances 2022-04-19 00:13:26 +02:00
Tom a33b0f1e1c updated react unmounting 2022-04-19 00:13:26 +02:00
Tom bd28ed07d7 working canvas_note PoC save and load for one note 2022-04-19 00:13:26 +02:00
Tom 12185fbd32 optimized canvas placement in trilium 2022-04-19 00:13:26 +02:00
Tom 24911da8db use react production build 2022-04-19 00:13:26 +02:00
Tom da84d16421 excalidraw include works, removed infinitedrawingcanvas 2022-04-19 00:13:26 +02:00
thfrei 53666cbfe8 lint 2022-04-19 00:13:26 +02:00
thfrei 8897d98bd9 add note-detail height to make canvas visible
due to some upstream changes, this was necessary.
otherwise complete inside container was not visible.
2022-04-19 00:13:26 +02:00
thfrei 93e485cea9 remove console.image 2022-04-19 00:13:26 +02:00
thfrei 22363f5b74 working trilium canvas note 2022-04-19 00:13:26 +02:00
thfrei 2a2c82cd29 minor update for canvas 2022-04-19 00:13:26 +02:00
thfrei 5ebe717da8 basic infinite-drawing-canvas integration 2022-04-19 00:13:26 +02:00
thfrei 2f2d8327e4 update libraries 2022-04-19 00:13:26 +02:00
Tom Free a894c19c2b add missing canvas-note entries in helper functions
Conflicts:
	src/public/app/entities/note_short.js
	src/public/app/services/tree_context_menu.js
2022-04-19 00:13:26 +02:00
Tom Free 0469962c5e wip: canvas-note patch
Conflicts:
	src/public/app/services/library_loader.js
	src/public/app/services/tree_context_menu.js
	src/public/app/widgets/note_actions.js
	src/services/consistency_checks.js
	src/services/utils.js
2022-04-19 00:13:26 +02:00
zadam f6ebc76917 Merge remote-tracking branch 'origin/stable' 2022-04-18 18:59:30 +02:00
zadam 73425ec29d workaround for wrongly placed tooltip, closes #2794 2022-04-16 15:51:30 +02:00
zadam 51e5f591b2 null check 2022-04-16 15:10:16 +02:00