Something about why I'm building Structpad: I love taking notes and I think it's necessary for deep thinking because our brain is very powerful, but it has one weakness - memory. I noticed that not only the text itself matters, but also some invisible structure in our minds. There are various tools that try to reveal this structure, such as filenames, folders, tags, links, tables of contents, but they are often complex and unreusable. So I wanted more structure, less clutter, and no extra clicks.
Programming languages use OOP for a higher level of abstraction, to create more complex programs, so why not use something similar for our thoughts instead of plain text? In this way, Structpad reduces the load on memory for the sake of the quality of using the mind.
As is there is already the option to switch from "About" to "Local Storage", which presents me with a blank page at a new URL to start creating my own structs...
What if you use the URL as the key in localstorage, and store the document as a serialized string there? Then I can create new blank documents by visiting a yet-to-exist address. Then the dropdown menu could be used to switch between documents... oh, I guess we're just back to files and folders then xD
...so if the goal is to have one global document that I can zoom into and out of (arbitrarily nested structs), perhaps I could select any block and blow it up full screen, hiding all data outside of it, but allowing child-blocks to be added. You could implement these as folds so you only show the struct to x depth, or move down into the struct, following the rabbit hole as it were.
As the complexity multiplies, I expect eventually I'd want the ability to re-use blocks in multiple places, like a hard link, different paths to the same content. Then you get to visit a block in one place and ask "what are all the structs that include this block of text" ?
I always thought Wikipedia should work this way, there's so many articles on history and chemistry etc that have some context or background info -- very similar content produced by many authors. You should instead be able to embed a paragraph from an existing article and optionally pin it to a version/hash, but if its not pinned, you could update a hundred wiki articles at once by improving one sentence, and you could tell the computer, "show me all articles that embed or quote this paragraph", Now we're getting Xanadu-ey!
I'm unsure what benefit you are trying to describe here. When I jot things down in Notepad++, I use tons of commands all of the time to edit the text. You don't just type from start to finish, you know; you move around and you make edits. People who are more mouse-driven than me use buttons for the same purpose. I also make extensive use of (“special”) Unicode characters to make things clear to myself. Why would I use a software whose explicit aim is to take this all away?
Sure, more complex functions will require buttons or something.
You can also browse the book he published describing the system, Literary Machines (1981) [1] -- it's a sprawling vision but I think where the parent sees overlap is in storing each text fragment as a singular entity and visualizing the links between two fragments.
> A user may also make side-by-side connections of other types. On contemplating any two pieces of text, he may make a link between them. Thereafter, when he displays either piece of text, and asks to see the links, a link-symbol is displayed, and the other attached text — if he wishes to see it.
> Naturally, making a marginal note consists of writing the note and hooking the link. The link facility gives us much more than the attachment of mere odds and ends. It permits fully non-sequential writing, or hypertext.
BTW I really like the interface of just typing and moving my cursor around, and how easy it is to pick up a block of text and move it somewhere else.
[0] https://youtu.be/En_2T7KH6RA?t=203
[1] https://archive.org/details/literarymachines00nels_3/page/n6...
A friend of mine is also building a memex [2](1945), as mentioned in the parent. His is a fairly radical DOS interface that he's been keying his thoughts into daily since the 80s, and it's great fun watching him try to remember something [3](2013): in about 5 or 6 keystrokes skipping across the graph of all notes, he's able to find that name on the tip of his tongue, and then hop to their phone number and the date they first met, then see what else he wrote down on that day...
[2] https://www.theatlantic.com/magazine/archive/1945/07/as-we-m...
For a proof-of-concept, I really like your approach to hierarchical notes here! I'm a student and that structure makes sense for a lot of what I need to take notes on, but existing tools for linked notes don't have a great answer for that (and sometimes actively discourage it). I think you're onto something, looking forward to seeing how you develop these (and more) ideas over time!
One tiny thing I've noticed in the first minute is that using shortcuts like Ctrl+A or Ctrl+Shift+Home (in Firefox/Windows anyways) selects stuff outside of the current "label" which feels a bit off. I use these shortcuts to quickly select a bunch of text and start typing to replace it with something else.
What are your plans in terms of data portability / syncing?
If you switch between browsers and machines, how do you transport/export/import/backup the localStorage content?
So... a miss for me on this helping with abstract thinking.
That said - keep iterating and challenging what is possible, and start talking to "customers".
Why do you believe you have to? A simple "start afresh" button discarding all the objects would do. Such a tool is essential for experimentation, studying a new tool.
> This, restore and backup will definitely be implemented in the near future.
I hope so. Just dump/load JSON. Lack of this functionality seems killing a great concept. I doubt many people will spend even a minute outlining if the only way they can backup their work result is a screenshot.
I'll play a bit more but there is something about the interface that just doesn't work for my thought process.