What is it?
JoplinFS is a (proof-of-concept) wrapper around the Joplin API that allows you to read your Joplin notes as if they were normal markdown files that live on your hard drive. To do this I use the FUSE interface to pass filesystem operations to the Joplin API. Using this enables you to view and interact with your notes as if they they lived on your hard drive instead of a database. If you're familiar with rxliuli's vscode plugin then this concept will be familiar to you. Still doesn't make sense? Take a look at the screenshots below!
Currently this is a read-only implementation, meaning you can view your notes (and notebook structure), but cannot make edits. This isn't a technical limitation with FUSE, I just didn't want to take on the responsibility of keeping notes safe.
Why?
Because it seemed fun/cool.
How can I use it?
This is really a demo more than anything. All the code is MIT licensed and available on github but is not meant for wide consumption. I've only tested on Ubuntu 20.04 and have no reason to believe it will work correctly on other systems.
Why though?
A system like this (complete of course) would allow users to use any editing/management paradigm that they like (vscode, sublime text, etc.) while still enjoying the benefits of Joplin for cloud syncing, sharing, mobile etc. It would also play nicely with existing tools that assume documents are stored on a filesystem (backup tools for example). Basically for users that enjoy managing notes on their hardrive this could be a best-of-both-worlds tool.
"Demo"
First we take a look at our ABC folder in Joplin. It's just a mostly empty folder that I set up for this demonstration.
Then we can view the same folder structure from the command line using the tree
command. (We can also see the various notes I use for testing Joplin/Joplin plugins).
$ tree test_mnt/
test_mnt/
βββ ABC_26c8
β βββ And Fun!_e818.md
β βββ How cool is this_20e5.md
β βββ It's easy to use_29ba.md
βββ Imported Templates - 09082021_1d15
β βββ broken.md_8130.md
β βββ hours.md_af0e.md
β βββ README_7684.md
β βββ simple.md_a092.md
β βββ test_083b.md
βββ test_0707
βββ Anchors_a782.md
βββ Base64_884a.md
...
We don't only have to use the command line, we can also open the notebook from the file explorer!
And notes can be read as if they reside on the hard drive as normal Markdown files!
That's it! I hope you all think this is as cool as I do!