TreeSheets: Open Source Free Form Data Organizer
strlen.com
strlen.com
2021 (91 comments), https://news.ycombinator.com/item?id=27614912
2017 (58 comments), https://news.ycombinator.com/item?id=15057392
2016 (28 comments), https://news.ycombinator.com/item?id=11247372
I don't know why but it seems to work very well with my dyslexic brain in a way other forms of note taking on a computer don't.
If I was a better programmer I'd definitely be contributing!
My question is what data format is it using? I found some examples here [1], but looks like it's a custom binary format?
Is there a functionality to auto-export (e.g. on save) to plaintext (xml/json/whatever), so I could hook TreeSheets files to other apps? I appreciate it would be lossy, but even a tree/graph structure with text nodes would be good.
E.g. I'm a big fan of using plaintext search over all of my personal data/information, even in siloed apps [2]
[1] https://github.com/aardappel/treesheets/tree/master/TS/examp...
[2] https://beepb00p.xyz/pkm-search.html#personal_information
TreeSheets tries to be highly efficient in space/time, which is challenging with text formats.
There's an option in the menus for auto html export on every save. It's what I use to browse my data from non-supported devices, e.g. mobile (thru e.g. DropBox).
I suppose someone could write a description of https://github.com/aardappel/treesheets/blob/master/TS/docs/... in that specification language to give parsers in many languages. May not be as easy as it sounds with the embedded PNGs and compression etc.
Does TreeSheets do that natively?
It does have a way to follow "links" (cells with the same text).
There is something about quickly making tables of tables and inserting new rows/columns that just fits with how people think and see things visually. And there’s something natural to the editing.
Need a list? Make a cell with a single column table in it. Then need to prioritise? Add another column with an order. And so on. It feels a lot like throwing up things on a whiteboard.
Currently i mostly stick to Org-mode for everything with deft for fuzzy searching... text never goes out of fashion. Had to sacrificed everything else non-text along the way though. Although lately been looking at diagrams as code again with mermaid and D2lang
The version in my head (and occasionally in scribbled notes & diagrams) keeps getting massively overcomplicated though, then paired down to the point where it would be too basic, rinse+repeat. Perhaps this has found a useful compromise point, I'll have to give it a try (if it isn't close enough to ideal for what I want, it might help me constrain or at least prioritise my requirements).
I used the Mac installer linked on the project Github: https://github.com/aardappel/treesheets/releases
It checks if there is already a copy of TS running, and if so, passes the new file to be opened in the existing instance, which is useful with command-line usage.
On other platforms that uses lock files I believe, I guess here it uses local ports, and osx seems to think permission is needed for that.
It looks a lot like my ideal Emacs+org+roam instance. Very interesting, I adore discovering cool software like this!
“Cannot set locale to language “English (Cyprus)”.
The native format (.cts) seems to be binary, with a simple spec online[2].
[1]: https://strlen.com/treesheets/docs/tutorial.html
[2]: https://github.com/aardappel/treesheets/blob/master/TS/docs/...
https://gist.github.com/quag/e219f69670cd395d4a59a392557df28...
An older version (v16) of the format is documented, but that was before zlib compression was added. I’ve opened an issue and listed out the gaps in the spec, but haven’t gotten around to updating the spec itself.
https://github.com/aardappel/treesheets/issues/185
Happy to answer questions about the format.
Regarding the format I was wondering mostly how it might be possible to parse and add/remove data as part of an automated workflow. Most of my notetaking tools have ended up as part of a broader scheme like this.
Related, if I'm viewing/editing a file and an external process updates the file, is there any kind of alert or notice for the user, or could you describe what happens?
I don’t know if the app monitors the files for changes and then reloads on change or not. If not, I imagine you could modify the app to do so.