phildenhoff / logseq-slipbox

Write notes on mobile, save them to Logseq later.
MIT License
9 stars 0 forks source link

Nested notes #3

Open isosphere opened 2 months ago

isosphere commented 2 months ago

I use "notes to self" in a text chat app as my current slipbox, but it requires manual importing.

The advantage this has over logseq-slipbox is that I can "reply" to my notes to replicate the outliner structure in logseq.

We can replicate this by allowing markdown input. Each line that begins with "-" is a separate note (will become a new block), and indentation causes nesting.

It'll be some work to iterate over these and create the blocks with the correct parent/child relationships, but well worth it IMO.

phildenhoff commented 2 months ago

I'll have to think about. You think it would be worth it, but if you're adding indented notes all the time, you probably want to be using the Logseq mobile app anyway to get proper formatting.

Proper indenting in the input form would be awkward (or does the UI now have a fancy text editor?), and processing it correctly in the plugin would be flaky (splitting on characters, removing indent spaces but retaining correct indentation, multiple simultaneous insertions are historically wonky).

FWIW personally, when I'm writing a big note, I'll write it like this:

this is the main topic

- here's a sidenote
- and another one

and this is related but in logseq it'll be a sibling block

When I import that note, I just use Logseq's robust tooling to break it up into the right blocks. It's 100% annoying to have to process them, but I LOVE that the slipbox interface is a text box and a button. No thinking about formatting, no being able to link blocks. If I want to write "[[page name]]" I can, but I may still have to fix that later lest that page name isn't right.

isosphere commented 2 months ago

How about optionally supporting note history in the slipbox interface? Below the input box, we could show the last N notes in order from last input to first input. If the user clicks on one of these notes, then the note input box will record that the currently input note is a child of that note. It would be relatively easy to make it a child block when importing into the plugin.


Replies, but kind of outdated given that I think the above is a better approach

I'll have to think about. You think it would be worth it, but if you're adding indented notes all the time, you probably want to be using the Logseq mobile app anyway to get proper formatting.

It's pretty slow on mobile for a large graph, and getting syncing working reliably is a real challenge. Lots of folks have lost data trying, and I don't want to use the official sync feature because I prefer to self-manage my privacy. That's my motivation, anyway.

Proper indenting in the input form would be awkward (or does the UI now have a fancy text editor?), and processing it correctly in the plugin would be flaky

Not necessarily: we could use a markdown parsing library to handle it. We wouldn't have to support much: we could start with nested lists and nothing else.

When I import that note, I just use Logseq's robust tooling to break it up into the right blocks. It's 100% annoying to have to process them, but I LOVE that the slipbox interface is a text box and a button.

A challenge with this for me is that I don't necessarily have my entire nested note to put in the slipbox on the first try. I go for a walk, have a thought, have another thought - etc. There's currently no way for me to indicate that these thoughts are related to each other, and it's hard to do that at the import stage if its been awhile.

No thinking about formatting, no being able to link blocks. If I want to write "[[page name]]" I can, but I may still have to fix that later lest that page name isn't right.

I don't want to worry about formatting either - I'd just want a way to input notes with as little friction as possible. Maybe nested lists isn't a great approach to what I want.