Hello TW community,
this is a concept I’ve been wondering about for some time.
There are use cases where it would be nice to be able to explore/edit our node.js wikis with external applications relying on the filesystem. For example, we may want to do a complex metadata query of our audio tiddlers and open them as a playlist (something that wouldn’t be possible just searching for filenames), or to edit our text tiddlers from our favourite editor, all directly by navigating the filesystem from our applications. Some times one can also wish to be able to establish relationships between tiddlers as easily as moving/coping files around in file managers.
Traditional filesystems are strictly hierarchical, therefore not a good option for our use case. However, virtual filesystems such as FUSE can handle non-hierarchical structures very well. Tagsistant and to a lesser extent TMSU are good examples of this. These programs couple a virtual fs with a database, translating filesystem navigation to database queries. Tagsistant also translates some filesystem actions (copy, move, rename, delete) to propagate the changes into the database.
Depending on the capabilities of the TW CLI, it could be that the same could be done with TiddlyWiki on node.js, perhaps even not needing a database.
This approach would make it possible to interact with tiddlers through virtually any filesystem-aware application or platform (the virtual fs can be shared over a network), skyrocketing the number of possible TW use cases and making many common/repetitive operations (such as tagging) much quicker and more intuitive.
For example, in Tagsistant, moving a collection of files from a folder ./tag1/tag2/@/
to ./tag2/tag3/@/
removes the tag tag1
and adds tag3
for all those files, and this can be done from any file manager, even over a network. The tags order in the path address doesn’t matter, ./tag1/tag2/@/
and ./tag2/tag1/@/
always show the same files, which are all files tagged both tag1
AND tag2
. Other logical operators are available and quite complex queries can be quickly performed simply navigating the virtual filesystem.
This would not replace TW frontend, but it would open up several possibilities.
Below is a diagram of how an hypothetical plugin “vnodeFS” could operate:
So this thread is to discuss the possibilities, see if it’s something the community would want, or to point to alternative solutions.
Dam