Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve file system structure #54

Open
NetworkSeb opened this issue Dec 27, 2018 · 91 comments
Open

Improve file system structure #54

NetworkSeb opened this issue Dec 27, 2018 · 91 comments
Labels

Comments

@NetworkSeb
Copy link

@NetworkSeb NetworkSeb commented Dec 27, 2018

A setting to that allows creation of folders in the data folder when creating a notebook. All notes for that notebook would then be stored in the newly created folder. This gives the added benefit of a more organised data folder and aides the external editing of notes.

@fabiospampinato

This comment has been minimized.

Copy link
Member

@fabiospampinato fabiospampinato commented Dec 27, 2018

This would complicate the codebase quite a bit, IMHO it's not worth it, by design notebooks in Notable are just tags.

@moqmar

This comment has been minimized.

Copy link

@moqmar moqmar commented Dec 28, 2018

So, is there basically any difference between notebooks and tags right now?

In the comparison chart, you advertise "Mobile app | ✘, but notes are Markdown files". Unfortunately, as Notable's structure is based on frontmatter instead of directories, there's currently no app that supports the notebook structure of Notable.

I'd be glad to try my best at a pull request for this feature, if there's nothing speaking against it.

@PhilipWhiteside

This comment has been minimized.

Copy link

@PhilipWhiteside PhilipWhiteside commented Dec 28, 2018

A setting to that allows creation of folders in the data folder when creating a notebook.

A note can belong to multiple notebooks. In such a case, to determine which sub-folder-notebook it would reside in would become difficult. To duplicate would result in conflicts when edited outside, and to create links/shortcuts can affect backups/copies not taking the actual file but the shortcut, and symlinks/hardlinks are hard to maintain across systems with different filesystems as well as sync tool compatibility (Dropbox etc).

So, is there basically any difference between notebooks and tags right now?

The Tag vs Notebook element is more of a users choice to me. I much do prefer the approach of being fully flexible in both. To me, a tag is not a reference to where it belongs, but what it is, the flavour of it, the status, etc. That's how I see things, not as an organisational, but more search/filtering addition.

This gives the added benefit of a more organised data folder

A dated by creation/modified folder would help a form of organisation. I'm not sure how things scale with 100s, 1000s, of notes in a single directory. But the problem being solved is not organisation as Notable is doing the organisation part at a higher level.

there's currently no app that supports the notebook structure of Notable

For me the purpose of mobile editing is quick edits/adds, and retrieval of quick data. It is not for a long duration of editing. So simple search of note names and plain text content will suffice. But there is nothing stopping a mobile app developer adding support to read this front-matter, which also allows them to extend the functionality and flexibility of their app. (If someone does know of an app which supports the front-matter, I am interested (Android)).

I'd be glad to try my best at a pull request for this feature

I can't speak for a PR, I'm not involved in the development. But since it's just plain text files, you can manipulate the data directory yourself. If you create sub-folders, the contents are picked up, so you can create your own manually. If you script something to look at the front-matter you can do this external to the app. Not perfect, but if done every so often, you will have a fairly up to data data dir.

@fabiospampinato

This comment has been minimized.

Copy link
Member

@fabiospampinato fabiospampinato commented Dec 28, 2018

So, is there basically any difference between notebooks and tags right now?

Other than the icon and sidebar position? No, this is by design.

Unfortunately, as Notable's structure is based on frontmatter instead of directories, there's currently no app that supports the notebook structure of Notable.

The structure has nothing to do with the text editor, any text editor is capable of editing our notes.

@moqmar

This comment has been minimized.

Copy link

@moqmar moqmar commented Dec 29, 2018

The structure has nothing to do with the text editor, any text editor is capable of editing our notes.

Yeah, any text editor is capable of showing and editing the contents of the notes, but not a single other text editor is capable of displaying the structure of the notes, which is extremely important if you have a lot of notes.
I'm fine with tags not working in other apps, but folders have been such a great way to organize stuff in the last couple of decades, lots of mobile and desktop apps support it, and already having notebooks and tags seems like a great start to represent one of them as a folder (and thus limiting it to one per file).

From the README, I get the feeling that one of Notable's strong point is portability (no proprietary formats, notes are just markdown files, ...), and portability of the structure is just as important as of the content of the notes itself. I'm a bit disappointed to see that this is not a thing that's considered important - Typora as a closed-source app with the same basic idea offers way better compatibility with other apps than Notable right now for example.

I'm fine with it being an optional feature, but not implementing it at all (while not alternatively providing a mobile app) makes Notable basically unusable for me.

@fabiospampinato

This comment has been minimized.

Copy link
Member

@fabiospampinato fabiospampinato commented Dec 29, 2018

@moqmar I understand what you're saying, and if a mobile app is important to you then Notable is probably not the right app for you at the moment. In which folder should you put a note tagged with 2 different tags? These sorts of "advanced" organization capabilities are missing in Typora. Maybe you can achieve that with symlinks, but supporting this would be a big undertaking with no real upside for me, since the root problem is more about being able to edit notes easily on mobile I would rather spend the time developing that.

@moqmar

This comment has been minimized.

Copy link

@moqmar moqmar commented Dec 29, 2018

Well, there are notebooks and tags - why not make notebooks the folders, and tags an additional, advanced organization tool?

@fabiospampinato

This comment has been minimized.

Copy link
Member

@fabiospampinato fabiospampinato commented Dec 29, 2018

@moqmar It makes sense to me to treat them both as tags. The codebase gets significantly simpler, and you get notes that can be put into multiple notebooks.

@amolgawai

This comment has been minimized.

Copy link

@amolgawai amolgawai commented Dec 31, 2018

I also think that this feature would be very useful in the absence of a usable mobile app.

@amolgawai

This comment has been minimized.

Copy link

@amolgawai amolgawai commented Jan 1, 2019

@NetworkSeb , @moqmar Checkout vnote which has folder support.

@fabiospampinato

This comment has been minimized.

Copy link
Member

@fabiospampinato fabiospampinato commented Jan 1, 2019

@amolgawai It just doesn't make sense to me to work on this feature because there's no mobile app, I'd rather work on the mobile app instead.

@amolgawai

This comment has been minimized.

Copy link

@amolgawai amolgawai commented Jan 2, 2019

@fabiospampinato If the mobile app is on the roadmap, I sure will wait for it.

@gamato

This comment has been minimized.

Copy link

@gamato gamato commented Jan 6, 2019

I don't think it's just the matter of Notable mobile app being available or not. As @moqmar explained, while notes are available as markdown files and thus could be edited, they are hardly manageable outside Notable. Having an option to organise them in subfolders would be a huge thing and would make Notable really interoperable.

One idea I just had is for a new special tag "Folders/*". It would not come from a file itself but from its location. And upon setting it Notable would just move the note file into new location. That would keep the current behaviour of Notebooks (where a note can be in multiple places) while it would allow an alternative organisation of notes / files for us who need it.

@fabiospampinato

This comment has been minimized.

Copy link
Member

@fabiospampinato fabiospampinato commented Jan 7, 2019

A note can't be physically put into multiple folders, so unless we use symlinks, or we restrict notes to only one tag/notebook this just doesn't work. Besides even with the considerable restrictions implementing this would take significant effort, effort that I'd rather put somewhere else.

If you'd rather organize your notes by properly structuring your notes directory instead of using tags I recommend you using Typora, I've tried the macOS version and it's pretty good.

@fabiospampinato

This comment has been minimized.

Copy link
Member

@fabiospampinato fabiospampinato commented Jan 7, 2019

I've answered some other points here:

I cannot create notes with same name
I cannot have different attachments with same name.

This is a good point, but the only way of solving this is colocating attachments with notes, that means embedding the attachments inside the notes (what Evernote is doing, you basically can't access your attachments if not via Evernote) or maybe putting each note in each special folder, which I'd rather not do as it would complicate the codebase considerably.

One idea is that tags might map to folders, so for instance there would be Notebooks/School (sub)folder.

Where do you put a note with multiple tags? Besides managing all this structure would be a mess.

What if Notable could read folders recursively? Then I could manage / rearrange my files / notes externally as I see fit. All metadata is already stored within files, so file names and subfolders should not matter much, right?

It already works like this, doesn't it?

Even better, what if there was support for a special tag Folders? For instance "Folders/work/project-X".

I guess this would work, but if you're thinking of "Folder/" tags as kind of invisible "Notebooks/" tags we might as well use the "Notebooks/*" tags already, the problem is: where do you put the note if it belongs to multiple notebooks? I don't think this feature is worth restricting notes to a single notebook (plus the extra complexity required for managing all this folders!).

@gamato

This comment has been minimized.

Copy link

@gamato gamato commented Jan 7, 2019

A note can't be physically put into multiple folders, so unless we use symlinks, or we restrict notes to only one tag/notebook this just doesn't work. Besides even with the considerable restrictions implementing this would take significant effort, effort that I'd rather put somewhere else.

If you'd rather organize your notes by properly structuring your notes directory instead of using tags I recommend you using Typora, I've tried the macOS version and it's pretty good.

I'm not sure I made myself clear or maybe you just skimmed through my comment. Either way, I suggested a new magic "tag" (Folder) so that the current behaviour of tags and notebooks would not change. Or perhaps no special tag at all would be needed. --- If all notes were in the same top level folder, no change is necessary. If some files were found in subfolders, they would be "tagged" magically and Folders would appear in the very left pane in the same way Notebooks and Tags are displayed. Clicking on Folders would show all notes, while clicking on subfolders would show just those located there. And you already have to remember file locations, so this is just a visualisation, right? And the notes could be moved among folders, but that would just move files around and wouldn't change any of the current behaviour. So it seems now to me there's really no need for any extra special tag, just an option to visualise subfolders if any found.

What do you think about it, please? Or is there something I missed?

@fabiospampinato

This comment has been minimized.

Copy link
Member

@fabiospampinato fabiospampinato commented Jan 7, 2019

@gamato I've no interest in this so I'm not going to implement it. I think Typora might be a better editor for this use case.

@gamato

This comment has been minimized.

Copy link

@gamato gamato commented Jan 7, 2019

I'm not sure Typora is better here nor why you keep suggesting it. All I want, and a few other users in other threads, is to have an option to work in more than just one-folder-must-be-good-for-everyone structure. I tried to explain but I guess I failed. Also, you suggested in other thread -- "why would you want to use Notable for displaying/editing your notes if you're creating them manually in the notes directory" (and then locked the thread). That's quite opposite of what I want. So it seems to me this conversation is going nowhere. It's a pity as Notable looked like a good option for us at first sight. But this and your future plans suggest we should better try something else. Anyway, thank you for nice piece of software and good luck in your future endeavours.

@fabiospampinato

This comment has been minimized.

Copy link
Member

@fabiospampinato fabiospampinato commented Jan 7, 2019

I'm not sure Typora is better here nor why you keep suggesting it.

You organize notes in Typora via folders rather than tags.

All I want, and a few other users in other threads, is to have an option to work in more than just one-folder-must-be-good-for-everyone structure

This is a note-taking app I built for myself, making it perfect for every single use case imaginable is not a goal I'm interested in.

(and then locked the thread)

This sounds like you're implying I don't care about the discussion, but if you read this message I think it's clear that I locked it for keeping the conversation on a single thread.

Anyway, thank you for nice piece of software and good luck in your future endeavours.

No problem, thank you :)

@ymjonline

This comment has been minimized.

Copy link

@ymjonline ymjonline commented Jan 10, 2019

I would lean towards the paradigm where:

  • Folder --> Notebooks
  • YAML front-matter tag --> Tags

Not only this would make it more "neutral" and portable, which is in accordance with the philosphy of the app as I understand it, but more compatible with mobile app (that I'm really really craving for here)

And, one note does not have to be in several Notebooks at a time. Otherwise it's not a "notebook" anymore but just a tag.

Actually the same note in 2 or more different notebooks defeats the purpose of Notebooks in the first place.

(can't wait for the mobile app - or if you know any that is able to quickly create a note (incl- pasting a pic) and manage tags, I'm all ears)

@fabiospampinato

This comment has been minimized.

Copy link
Member

@fabiospampinato fabiospampinato commented Jan 10, 2019

@ymjonline the way you use your notebooks is not necessarily how everybody else does though, our implementation doesn't constrain us to allowing only 1 notebook per note, and this feature request brings not only upsides (that I'm not really interested in) but also some downsides.

@ymjonline

This comment has been minimized.

Copy link

@ymjonline ymjonline commented Jan 10, 2019

I respecfully disagree :)

If a note can belong to different notebooks, then it's not a notebook anymore, it's a tag.

Maybe a tradeoff would be for Notable to manage all files within a folder, even those in sub-folders and treat them all equally.
Then it's up to the user to tag them accordingly (thus possibly assigning a notebook-tag to a given underlying folder)

By doing so users can manage their notes at the underlying file system level as well, independently from Notable's implementation.
To actually make that user-friendly, add a contextual menu (right-click on note) showing the note's properties including the underlying file system folder it belongs to.

@fabiospampinato

This comment has been minimized.

Copy link
Member

@fabiospampinato fabiospampinato commented Jan 10, 2019

If a note can belong to different notebooks, then it's not a notebook anymore, it's a tag.

Notebooks are tags in Notable. Also there's no definition set in stone of what a notebook is supposed to be, is there?

Maybe a tradeoff would be for Notable to manage all files within a folder, even those in sub-folders and treat them all equally.

I think this is already the case. You have to put a note in a subfolder by yourself though.

To actually make that user-friendly, add a contextual menu (right-click on note) showing the note's properties including the underlying file system folder it belongs to.

There's already a Reveal in Finder/Folder option that basically does this.

@ymjonline

This comment has been minimized.

Copy link

@ymjonline ymjonline commented Jan 10, 2019

If a note can belong to different notebooks, then it's not a notebook anymore, it's a tag.

Notebooks are tags in Notable. Also there's no definition set in stone of what a notebook is supposed to be, is there?

well it's phylosophical, but a physical notebook would only have 1 version of a unique piece of paper.
While it could be tagged with various labels shared across the whole library of notebooks.

Maybe a tradeoff would be for Notable to manage all files within a folder, even those in sub-folders and treat them all equally.

I think this is already the case. You have to put a note in a subfolder by yourself though.

True. I hadn't paid attention. Excellent !

To actually make that user-friendly, add a contextual menu (right-click on note) showing the note's properties including the underlying file system folder it belongs to.

There's already a Reveal in Finder/Folder option that basically does this.

basically yes :) Properties would be ideal, but I guess low priority

@amolgawai

This comment has been minimized.

Copy link

@amolgawai amolgawai commented Jan 11, 2019

I also have the opinion that Notebooks and Tags serve a different purpose. Some note-taking systems tackle this by allowing hierarchical tags and some by offering folder structure.
I prefer folders because they offer me independence from using any particular application. Currently, the absence of folder support is blocking me from using Notable on a regular basis.

@bendem

This comment has been minimized.

Copy link

@bendem bendem commented Jan 11, 2019

Just my two cents, but I really like having the possibility to add a note to two notebooks at once.

@Danmou

This comment has been minimized.

Copy link

@Danmou Danmou commented Jun 12, 2019

I think the really crucial unsolved problem is the one mentioned by @matejdro; namely wanting to share a specific subset of notes (e.g. one notebook) with someone else and be able to collaborate on it. Of course Notable might at some point get its own collaborative features that would probably work better than just sharing a folder in dropbox, but this would require that the collaborator also uses Notable, which seems to go a bit against the ideology of Notable (no proprietary formats, allows using external editors etc.).

There has been one solution mentioned by @gamato long ago, that I think was dismissed too quickly: #54 (comment)

The idea is to add one more special tag (like Notebooks) called Folders (or whatever) that allows one to specify a specific subdirectory for the note (e.g. the tag Folders/asdf would result in the note being saved in ~/.notable/notes/asdf). The following rules would need to be implemented:

  • Only one tag of this type would be allowed for each note and notes without the tag would be saved in the root folder.
  • Notable moves the file when you update the tag.
  • The tag is updated whenever a file is read (to allow manually moving files around outside Notable).
  • The Folder tags are shown as a separate section in the sidebar, just like Notebooks.

In the future web-hosted version of Notable, the Folder tag can simply be a tag and not reflect actual file system changes.

You mentioned earlier a potential problem with trashed files, that in the current system the file stays in the same location and just gets the deleted: true line in the front matter. In my opinion this behavior doesn't have to change (you can still move the file if you want by changing the Folders tag after trashing it), but it is of course a bit counterintuitive that "moving to trash" doesn't actually move the file. One option would be to use the tag Folders/Trash as a substitute for the deleted: true line (the subdirectory information could still be preserved by using an appropriate subdirectory of Trash, e.g. Folders/asdf becomesFolders/Trash/asdf when deleting). So adding the tag Folders/Trash to a file is simply an alternative way of moving to trash. Another option that would avoid any potential name clashes would be to simply keep trashed notes in a separate directory, e.g. ~/.notable/trash. But again, keeping the current behavior is also totally fine.

I think this solution solves pretty much all the use-cases that have been mentioned in this thread (people who want a one-to-one correspondence between notebooks and directories simply use the Folder tag instead of the Notebook tag), it changes nothing about the way Notable works if you don't use the new tag and it seems like relatively little work given the benefits.

One caveat: While the solution will work perfectly for markdown-only notes, sharing only the necessary subset of attachments might be more difficult. However, I think this is a reasonable limitation for now. You can always add a prefix when naming an attachment to signify which set of notes it belongs to.

@djthomson

This comment has been minimized.

Copy link

@djthomson djthomson commented Jul 12, 2019

I too would love the option to create folders for certain subsets of notes to allow better sharing, permissions management etc.

Is the /notes/ folder really required? For users opting to start using Notable to manage existing folders of notes, it would be helpful if Notable could preserve the existing file system structure by leaving notes in the root data directory, then separating attachments etc. into new folders as happens currently.

It seems to me that be that the best solution would be to allow user-defined data structure for each data directory, through the command panel (#338).

@fabiospampinato

This comment has been minimized.

Copy link
Member

@fabiospampinato fabiospampinato commented Jul 12, 2019

I too would love the option to create folders for certain subsets of notes to allow better sharing, permissions management etc.

You could put those in a separate data directory.

Is the /notes/ folder really required?

I mean there could be all sorts of different implementations, many of them won't have a "notes" directory.

For users opting to start using Notable to manage existing folders of notes, it would be helpful if Notable could preserve the existing file system structure by leaving notes in the root data directory, then separating attachments etc. into new folders as happens currently.

In theory if you organize your notes in an arbitrary structure inside a "notes" folder they should be recognized properly, but when editing them their location won't be preserved.

We could implement this theoretically, but I have my doubts about the long-term usefulness of this, and most importantly there are all sorts of possible file system structures we could implement, I don't think it's reasonable to say that we should just support all of them.

@asielen

This comment has been minimized.

Copy link

@asielen asielen commented Jul 23, 2019

You could put those in a separate data directory.

For me personally, I less think about it as folders being notebooks but rather as 'libraries' a category above notebooks. Essentially having multiple data directories open at one time.

This would allow me to have multiple 'libraries' of notebooks open at one time. One for work and one for personal as an example. I could then manage the file permissions for the folders separately in the file system. I could have one of the notes folders sync on my personal share drive and one on my work drive. If I wanted to create a new library for a shared project I could share the folder and all the notes in it without having to share all notes or just specific files. It also means when I am done with a big project or switch jobs, I can easily rip out all the notes in that 'library' and start fresh,

The folder tag that has been mentioned seems to overcomplicate the issue a bit.

I wouldn't need/want the libraries to interact or be able to reference each other, it would be nice if the search worked across everything but not a deal breaker for me. Even just a basic way to maybe bookmark data directories would work for me so I could switch between them with a few keystrokes.

@fabiospampinato

This comment has been minimized.

Copy link
Member

@fabiospampinato fabiospampinato commented Jul 23, 2019

@asielen let's track that here: #60

@fabiospampinato

This comment has been minimized.

Copy link
Member

@fabiospampinato fabiospampinato commented Oct 31, 2019

One of the biggest concerns I have about the proposals in this thread is that you can't really put a note in 2 sibling folders at the same time, while instead you don't have this limitation with tags, so mirroring perfectly the structure you see in Notable to the filesystem is kind of impossible, but what if we just duplicated the note on disk making it available at both locations?

That would solve the issue, while introducing at least a couple more:

  1. If you edit the same duplicated note first in location A, and then in location B, while Notable is closed, there would be a conflict between the two versions and one of them would have to be discarded.

  2. If you search for a note via the default file system search you will see duplicates.

I think possible solutions to these issues might be:

  1. If you need this sort of file system structure it's on you to keep Notable running, and perhaps eventually it could run in the background anyway in order to have files always synchronized, kinda like Dropbox. Or we could use symlinks so that you actually end up editing always the same file.

  2. We'll most probably provide better search capabilities via the future built-in CLI app #667, other than that there isn't much we can do about this.

Also by default the file system structure might remain the current one, and switching to this hypothetical new one would be opt-in.

What do you guys think, would this make sense to you?

@sahil48

This comment has been minimized.

Copy link

@sahil48 sahil48 commented Oct 31, 2019

In the file system, you could have the original folder the note was assigned to hold the note, and in subsequent folders assigned the file, a file shortcut pointing to the file in this original folder. If the file no longer resided in the original folder, the file will be moved to the next oldest folder and the shortcut links updated accordingly.

@sahil48

This comment has been minimized.

Copy link

@sahil48 sahil48 commented Oct 31, 2019

As another alternative, all files could be in a single main directory. The end user could identify the tags they want available in folders they specify in the file system. Notable can then do a one-way sync from the main directory of the file to each folder, and include a shortcut to the original note for editing it. This would allow the files to be shared read only, and make access to the files by the owner of the files more convenient so that they can be edited in third party applications (like visual studio code) other than Notable, while notable acts as the main repository for all the notes. The duplicate file name could be appended with “_READ_ONLY” so it is clear which file is the editable file for Notable.

More interestingly, if a user adds a new file to one of the non-main folders, Notable could allow you to incorporate it into the main directory and then make the file read only upon synching with the folder again. You could then include a bunch of files for collaboration, collaborate over Dropbox with the read only files as reference, and when the work is done, add it back into Notable.

@Danmou

This comment has been minimized.

Copy link

@Danmou Danmou commented Oct 31, 2019

@fabiospampinato I think trying to keep files synchronized between two folders is gonna create more problems than it solves. Why not use symlinks instead? And is there really a need for having the same file in multiple folders anyway? In my opinion it would be a reasonable restriction to say a file can have multiple tags, but only one folder.

Regarding making it an opt in feature, with the system I proposed earlier there would be no difference until you start giving notes the special folder tag.

@fabiospampinato

This comment has been minimized.

Copy link
Member

@fabiospampinato fabiospampinato commented Oct 31, 2019

I think trying to keep files synchronized between two folders is gonna create more problems than it solves.

Yeah probably, once the back-end gets rewritten it may not be too difficult to implement this though.

Why not use symlinks instead?

It's an option, I mentioned them as the possible solution of issue number 1.

Regarding making it an opt in feature, with the system I proposed earlier there would be no difference until you start giving notes the special folder tag.

I don't really like that proposal, organizing notes in the filesystem would become too much of a chore, I want something that just works™.

@sstallion

This comment has been minimized.

Copy link

@sstallion sstallion commented Oct 31, 2019

@muescha

This comment has been minimized.

Copy link

@muescha muescha commented Oct 31, 2019

I am still for the fact that folder structure should not be tags. I would complete decouble tags and folder stfuctur.

If a note is in a folder then this folder should be there visible as notebook or subnotebook To change a note to a notebook are only by file moving. This can be done also in the finder.

And then are tags which are only in the frontmatter section.

@Danmou

This comment has been minimized.

Copy link

@Danmou Danmou commented Oct 31, 2019

I don't really like that proposal, organizing notes in the filesystem would become too much of a chore, I want something that just works™.

I don't really understand your concern. What kind of interface did you have in mind for organizing notes in the file system? Currently the only way of organizing notes is with tags, and with this proposal you can organize notes the exact same way, except the structure would be reflected in the file system. And it's fully compatible with the way it currently works, so it changes nothing for anyone who doesn't want it.

If your concern is that editing tags is too cumbersome, then I fully agree but that is already a problem when using tags and can be improved with some simple UI improvements:

  • Making it possible to edit existing tags, instead of only adding or deleting
  • A drop-down of completions based on the current tags when entering a tag
  • Drag&drop of notes (perhaps holding a modifier key can change whether the 'destination' tag replaces the current active tag or is added to the tags list)

Those changes are just suggestions of course, the point is that using the existing tag interface prevents duplication of features and allows easy improvement. And implementing it should be far simpler than anything else I've seen proposed in this thread.

@Danmou

This comment has been minimized.

Copy link

@Danmou Danmou commented Oct 31, 2019

@muescha Note that the folder tag doesn't have to be saved in the frontmatter, it can be just a virtual tag that's shown in Notable. So moving a file in the finder works exactly as expected.

@muescha

This comment has been minimized.

Copy link

@muescha muescha commented Oct 31, 2019

@Danmou yes. That I mean. Notebooks/Subnotebooks or Folders/subfolders are always generated from file structure and not saved in frontmatter.

@sstallion

This comment has been minimized.

Copy link

@sstallion sstallion commented Oct 31, 2019

@fabiospampinato

This comment has been minimized.

Copy link
Member

@fabiospampinato fabiospampinato commented Oct 31, 2019

I edit my notes with a different editor

@sstallion I'd be interested in hearing what feature you'd need to switch to the built-in editor instead. I understand the current editor isn't optimal (we don't even have in-note search yet) but hearing what specific features you think are missing would be useful. Feel free to email me your thoughts at fabio@notable.md.

If a note is in a folder then this folder should be there visible as notebook or subnotebook To change a note to a notebook are only by file moving. This can be done also in the finder.

@muescha The thing is notebooks are just tags in Notable, by design, and I wouldn't want to limit how the tagging system works today, currently one note could be placed into multiple notebooks at the same time, what would happen then, how do we mirror this to the filesystem? There have been some proposals but none that I really liked.

I don't really understand your concern. What kind of interface did you have in mind for organizing notes in the file system?

@Danmou Hum, none? I'd like to make it easier to find attachments and notes when browsing the filesystem, but ideally I wouldn't want this to require any additional work from the user perspective.

If your concern is that editing tags is too cumbersome, then I fully agree but that is already a problem when using tags and can be improved with some simple UI improvements:

Those issues you mentioned will be fixed regardless of how this particular issue develops.

I think what you are proposing is manually organizing attachments/notes at the filesystem level and then showing this structure somehow in the app also, kind of like embedding a file system explorer in the app too.

There are some relatively minor changes I could/most-probably-will make to support this use case. I'm not convinced that showing the actual filesystem structure in the app itself is of primary importance though.

An alternative that has been proposed is adding a new special Folder/* tag or something like that, but that comes with an extra burden on the user that I don't like and would prefer to avoid.

@sstallion

This comment has been minimized.

Copy link

@sstallion sstallion commented Oct 31, 2019

@muescha

This comment has been minimized.

Copy link

@muescha muescha commented Oct 31, 2019

Maybe because I not expect to have notes in different notebooks - I for me don't know a use case of this.

The metaphor of notebooks = file system is easy to understand for people who use an computer. They also not expect a file in many folders

Tags are also well known. But which title someone give a tags is someones business.

So I see:

  • notebooks are assigned as file system
  • Tags (recursive available from the notebook downwards to Subnotebooks) are possible on many notes

@sstallion
Titles can be changed whith a .notable file in each folder: titles, symbols, type(notebook, Subnotebook,section,....) And other steetings

@fabiospampinato

This comment has been minimized.

Copy link
Member

@fabiospampinato fabiospampinato commented Nov 1, 2019

Titles can be changed whith a .notable file in each folder: titles, symbols, type(notebook, Subnotebook,section,....) And other steetings

@muescha I'm not sure what you mean by that 🤔 Are you referring to the file at ~/.notable.json? That's an undocumented file used for storing some very basic settings which will be removed once we switch to proper settings #476.

@OhiraKyou

This comment has been minimized.

Copy link

@OhiraKyou OhiraKyou commented Nov 2, 2019

I've been checking out some note-taking applications, searching for something that could replace OneNote 2016. While reading up on Notable, I came across a couple of posts that ultimately turned me away from it. One of them was about how Notable dumps notes into a single directory. So, I searched the issues to see if that had been changed since. Seeing this issue, I thought I'd drop in and share what I want from a note-taking application's data structure. As of the time I'm writing this, I've yet to actually try Notable. So, I hope you'll forgive any ignorance I may have of existing features. Also, this turned out pretty long. So, there's that 😬

First, I want arbitrary notebook hierarchies and associated file system directories. Worrying about not wanting to organize notes in directories doesn't make much sense, because you're already storing them in file system directories. It's just that the default directory isn't mentioned explicitly in the UI, and users can't use more than one at a time. To get the same result while leaving the subdirectories feature in, you could simply add a setting to hide the directory/notebook hierarchy when only one notebook is open.

So, if people don't want to use this feature, they can just dump everything into the default root. If they then open a second notebook, a "close current notebook(s) when opening another" setting would determine if the current notebook is closed or the hierarchy becomes visible for navigation.

When opened, a notebook's contents should be displayed in a hierarchical navigation pane, for quick access to all nodes. This is in contrast with navigation that only takes into account the immediate context (e.g., navigating link-by-link through a website's directory structure or directory-by-directory through a file system via a command line tool). Although, that could also be an optional view mode. Pages should have at least two display modes to choose from: combined and separate. In combined mode, pages would be displayed along with folders, file explorer style. In separate mode, pages contained within the currently-selected notebook are listed in a separate panel.

The data structure should be human readable, predictable, and well-organized without relying on editor-specific meta data formats. Notebook display names should be their file system folder names. Page file names should match their titles and be updated as they are edited. A number should be appended to a page's file name if a page with the same file name already exists in a notebook. And, if notebook-specific data is added (e.g., tab color or icon), it should be stored in a notebook meta data file within the notebook's root directory. That use of meta data is fine, as the editor-specific meta data is intended for configuring editor-specific features (e.g., auxiliary cosmetic settings) rather than basic organization.

Additionally, I want to store top-level notebooks/directories anywhere and have any number of top-level notebooks "open" (visible in the hierarchical navigation pane) at any time. I take notes for a wide range of reasons, and I store notes in similarly disparate locations, within their intended context. Yet, as my work is multi-disciplined, I generally need a bunch of notebooks open at once.

On a related note, an editor should not enforce a distinction between a top-level notebook and a sub-notebook. For data organization purposes, all notebook directories should be treated identically. This facilitates arbitrary reorganization. The only thing that an editor should care about when the user opens a notebook directory is displaying it as a top-level node in the hierarchical navigation pane.

Indeed, other than that it must be a directory, an editor should not enforce a definition of what constitutes a notebook at all. An editor shouldn't assume that the presence of a specific file type (e.g., an executable) warrants invalidating a directory as a notebook, as the editor may simply not know how the file is associated with existing notes due to lack of feature parity with another editor. Similarly, an editor should not refuse to open a directory as a notebook for lack of a file type (e.g., a notebook page), as adding notes to an existing directory structure as a supplement to existing contents is valid and reasonable usage.

To avoid accidentally opening unintended directories of potentially excessive complexity, attempts to open unusually complex directory structures (e.g., a drive's root) should probably be short-circuited based on searched folder count, and the user should be informed and prompted for confirmation before a search is resumed or canceled. User settings should determine the folder count, load time, or any other criteria that should count as "unusually complex".

Finally, the list of currently open notebooks and the currently opened page should be remembered between sessions.

So, yeah, lots of ideals. I've been using OneNote for a long time simply because I haven't found anything nearly as suitable for note-taking. But, with newer versions of OneNote having long transitioned to exclusively online storage, I'll eventually need to find a new offline solution. Over the many years I've used OneNote and reviewed alternatives, I've come to a lot of conclusions about what I want from a note-taking application. So, that's basically what this comment is made of, at least for the data organization part. What you have here looks like a solid base that might someday grow into something I'd consider switching to. So, to that end, I hope you find something actionable in this wishlist. At the very least, I certainly appreciate the work anyone has contributed toward potential alternatives thus far.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.