Plugin: Attaché

Name changed from Replace Resources to Attaché, functionally the same!!


In this case I will remove the old one from the plugin list. Ok?


This is a post listing few possible use cases for this plugin I've been procrastinating to write for some time, yet here it is. Please note that I'm aware of other approaches and software achieving the same or better result. This post is just a catalogue of ideas how this plugin could be used.

Humorous preamble: Marrying filesystem after years of one night stands

Credit to and original artist Nacho Arjona

Let's face it, attachments in our notes are out of date. In fact, we know that and don't even care keep them "fresh". We know that editing an attachment in a note is cumbersome and doesn't quite work on mobile.

We accepted long ago that nothing lasts forever and quietly gave up on long term relationships between our files and notes. They meet regularly, exchange a few nice sentences and go on with their life.

Each of them has got its own organization and rituals. What can you do if they are so different?

They've been growing apart for so long and each of them even got a lover. Notes flirt here and there with these pesky website clippings, and filesystem is always chatting with that chad dude calling himself a Cloud (yet we all know that he's just a bit distant douchebag filesystem). Maybe they just not destined to be together?

Well, introducing Polygamy! * cough-cough *

oh, that's not right, um wrong meeting... What the heck... Jeffrey! I asked you to move this talk with my wife to another time! I don't care that she left me! Gosh, those amateurs...

I mean... um... Introducing Attaché! :clap::clap::clap:

With this plugin we can tie those bastards in the basement filesystem and notes while allowing them to keep independent structure.

Use cases

Claim space back

So far, the main usage of this plugin - to streamline the process of photos quality reduction, freeing up space on a cloud storage.

It works like that:

  • You install the plugin
  • You write down the path of the folder in the plugin settings where you will save your new reduced in size files
  • You copy your Joplin files in resource directory (/.config/joplin/resources/) to the path you wrote in the settings
  • You use quality/size reducing tool of your choice to all file in that copied folder. Could be done with images in bulk via RawTherapee or Lightroom
  • You click "Replace resources" from tool menu in Joplin
  • Done, your new files are now in Joplin and will be synced with the cloud.

The advantages of this method

  • Works in bulk of any size
  • Works with any file format
  • Once setup you can run it multiple times: periodically (every sync) or until you get the result you need
  • There's less risk messing data due to user error

Above and beyond

However, it isn't the only usage of regular updates. With some imagination we can keep our attachments evolving in line with the notes themselves. Such approach makes it possible to create notes deserving to be published to the wild.

With some automation, Attache even makes it possible to tightly integrate Joplin into larger systems. In ideal world, this integration may help re-imagine Joplin as a potential platform for professional content production and distribution.

For those who are still reading, here's a chart of how it works to bore you to the ground.

mermaid source
flowchart TD
	subgraph model
	db[(database)] -- periodical -.-> dump --> postprocessing 

	subgraph Joplin
	postprocessing -- syncthing --> rr(Attaché) --- attachments
	postprocessing --> hotfolder -- new note --> attachments 

	subgraph public
	attachments --> publish
	publish{publishing to wider audience} --> pdf(to .pdf)
	publish --> email(send it as email)
	publish --> blog(export as blog)
	publish --> domain( personal website)

Other personal use

Okay, now let's go fast and loose
Here are the features based on updating attachments in bulk in already existing structure

Long standing thumbnail

Keep an updating map of your trips. Using css you can even customize the look of individual notes beyond what markdown allows (a neat trick from Angel_Crawford_ftw)


  • have a decorated note of your life milestones
  • bring up a seasonal change to your notes
Portfolio of your work

Create and publish to your domain, test illustrations and work assets for the best result


  • Classified advertisement: paste and update the images highlighting specific features of the product
  • Tableu exports and rich charts: Update professional charts when data change, keep in depth explanations
QR code update on link change

Technical documentation hosted on GitHub pages

Get inspired to craft rich(er) tech documents with more illustrative or runnable assets. Easily update all the assets in bulk in existing structure when UI, requirements or mood of your boss changes. Works especially well with git trackers.


  • Article / presentation mockups: create a mockup of the document, split the visualization and text writing work among different people
  • Editorial work: split a document by chapters and attach the combined rendered product to every chapter
Public event organizer

Announce tickets sold, sits taken, places booked, neighbourhood parking spots available on a rendered printable document

Advanced use

Mobile drawing update

Be able to save updates of your drawing on mobile. Just sync the updated images to the plugin folder.

  1. you setup an additional sync between plugin folder and an android folder (via FolderSync or Syncthing)
  2. You save the edited attachments in the android folder
  3. Next time you'll run desktop Joplin, the attachments will be updated in the notes

In the future if mobile plugins project succeeds, the 1 and 3 steps would be no longer needed but for now you can get yourself accustomed with the plugin workflow

Combined dashboard

Compile a custom dashboard from many different informational sources with page screenshots and script automation

Basic use can include setting up Google docs based workflow: Forms > Spreadsheets > Charts or pivots > publishing a link to image > script to save the image in resource replacement folder

Document preview (WIP)

Attach a file preview on save. Yeah, it's a work in progress, but tbh it's more like an idea to expand the plugin functionality. Maybe one day I'll get around to it.

Professional use

Let's just get it over with

Intranet projects, open source sharepoint
  • Discussion board and proposal review (meeting minutes): Multiple pages with a single asset, focusing on different perspectives.
    Bonus: Application architecture review, budget and analysis review

  • Cafe menu, coffee shop week's special

  • Placeholder for company policies: Quality guidelines, corporate style sheet, new employee "getting started" guides

  • Project overview: Attendance, vacation, project scheduling

  • Joplin as HR portal: An employee profile linked with other sources of information: payroll database, vacation schedule, permission map, a role in organisational structure and shift charts

  • Online course catalogue: lessons documented as collection of videos, reading materials and templates for self practice
    Bonus: Placeholder for your favorite playlists

  • Decks for employee accessible technical documentation: network, vpn configuration, periodical research findings updates

  • Corporate knowledge base: metadatabase, tables description, actual table dump sample you can preview and query

  • Reporting landing page: collection of files summarizing a time period


I think so @tessus :slight_smile: ?
I'm not sure if I've performed the right steps for the name change, the earlier version (0.13.1) still shows in my installed plugins, without showing the 0.14.1 DEPRECATED message.
Replace Resources installed 0.13.1

However if I search then the 0.14.1 DEPRECATED version shows as already installed?
Replace Resources search shows 0.14.1 DEPRECATED

I'm unsure how to further prompt people to delete the old version (Replace Resources) and install the new one (Attaché)?

I have marked the plugin as obsolete, but it still shows up in the list. Something is not working properly.... @laurent any idea what could be the problem?
Edit: found the problem.

You can change the name at any time. Changing the ID however has repercussions: people will have to install the new plugin and also adjust the settings again (and delete the old plugin).

The best way you can handle this is by changing the README of the old plugin to state that it is deprecated and that the new plugin can be found .....
If you have a topic on the forum for the old plugin, do the same thing. Add a comment and link to the new topic. Then close the old topic.

1 Like

It's better not to change the ID anyway. This is not a user-facing string, so it doesn't matter if it doesn't match the new plugin name.

Thanks @tessus and @laurent, I should have changed a bit slower !
Have updated the old NPM readme and deprecated it joplin-plugin-replace-resources - npm.
At some point, perhaps I should delete the NPM package? Unsure.

Lesson learnt to go much slower !