A Joplin plugin. Your attachment updater. Mass replacement of Joplin attachments (resources) such as resized image files, current music playlists, and any other attachments you need to one-off or regularly update within Joplin.
- Go to
Preferences > Plugins(Mac) OR
Tools > Options > Plugins
- Search for
- Click Install plugin
- Restart Joplin to enable the plugin
- Download the latest released JPL package (
io.github.manuerwin.attache.jpl) from here
- Close Joplin
- Copy the downloaded JPL package into your profile
- Start Joplin
First configure the Plugin under
Preferences > Plugins > Attaché (Mac) OR
Tools > Options > Attaché (PC?)
Note: due to Joplin's synchronisation conflict safeguards, this is a two-step automated process.
After setting the configuration settings and restarting, the file and processing sub-directories are automatically created for you.
Step One - deleting resources and sync'ing
Move your source files into the files path that you entered into settings. Your source files can be named in two ways:
- the same filename as shown in your notes (for example, music.m3u)
- the id of the resource (for example, b8bf831c8d804f6d8e5ab13ae12de595.jpg)
IMPORTANT: If you are choosing to replace resources via filename (for example, music.m3u), you must be certain there is only one resource with that filename across all your notes. If there are more, none will be replaced. AND: The filename in your note must be unchanged from when you originally attached it.
Tools > Replace/update attachments command.
This will delete each matching resource within Joplin, and move each source file to the
Step 1 - Resource Deleted Sync Needed sub-directory.
Important: this step has NOT updated your Notes, you will see the resource reference within any note still exists, however the preview of the note/resource will show a placeholder icon.
Synchronisation is automatically started for you, you'll see remote resources being deleted.
Note: a .REPLACE file is created in this sub-directory for each of the resources you are replacing, you can ignore these.
Step Two - creating resources
After the above synchronisation has finished, the plugin will create each resource within Joplin, and move your source file to the
Step 2 - Resource Replaced sub-directory.
Again, your Notes have NOT been updated in any way, the placeholder icon in preview will now show your replacement resource :)
Also note: your source files are NEVER deleted, they are simply moved to different locations so you know the status of each file/resource.
By enabling the
Run on start and after sync option, Attaché will be run on Joplin start and following synchronisation for you.
Move your source files into the files path, matching the settings entry.
Either restart Joplin or force synchronisation.
||Where to obtain the files that will replace resources.
Filenames MUST be only the target resource id in the format of <resource_id>.<file_extension>, for example b1a7160da73b45ba80b9aeb0bc9d574c.png, others will be ignored.
||If checked (i.e. true), Attaché will run immediately after Joplin starts and after each synchronisation.||unchecked (i.e. will NOT run on start or after sync by default)|
Building the plugin
The plugin is built using Webpack, which creates the compiled code in
A JPL archive will also be created in
/publish, which can be used to distribute the plugin.
To build the plugin, simply run
npm run dist.
Testing the plugin
To test the plugin, simply run
This project is setup to use Jest for testing purposes.
Updating the plugin framework
To update the plugin framework, run
npm run update.
In general this command tries to do the right thing - in particular it's going to merge the changes in package.json and .gitignore instead of overwriting. It will also leave "/src" as well as README.md untouched.