Folder as markdown note

But an index file is still just a file.
A program can choose to parse any index file before looking at other files in a folder but I certainly wouldn’t want index files popping up all over my file system. In fact, I really need Obsidian to leave my file system alone apart from adding, moving files and folders as I direct.

HTML certainly uses them, and I have them on all my websites, but for display and file management on the site, ie they are intrinsic to the system. But they’re not in OS files and folders. Wouldn’t be an issue if those files and folders were only used in Obsidian, but they’re not.

I think is mainly about the option to “use” folders (or any piece of metadata or condition) for “something”.

Often that something is explicitly to do with text/file content, but often it’s just a view.

Sometimes the view is so explicit/unique to Obsidian you may want it to be text in a file (such as an Index or MOC that was created via a folder) so you can use it elsewhere or interact with the text.

To me it’s just about giving the user options to do things with your files that would create value for them.

2 Likes

Exactly, and also why I moved this to Plugin ideas, so that it would be optional. I don’t want to modify the global use case of Obsidian, I want to make use of Obsidian in a way that provides is more efficient in my use case.

To @Dor’s point, MOCs are also just files. Even if you were using this Plugin, you wouldn’t be forced to add an index.md to a particular file, it would simply associate any existing index.md file with its parent folder. If the data backend is there for folders, like we discussed here, then another option could also be to use that as the place to manually associate any markdown file as the folder contents file. I don’t know what the user interface would be for that, but it could be an option for developing the plugin.

For me, the behavior that @Dor considers a bug (that the folder content is a file that exists in the filesystem, among the other content) is a feature. I need that feature, because I’ve already accepted that no markdown program no matter how advanced is ever going to build my manuscripts the way that I want, so I’ll always have to write my own build scripts. It will be massively easier for me to access the data for the folders if the data is kept the same way as all the other data. I’ve written build scripts for software like Scrivener before where I’ve had to wrangle reading their proprietary XML format to find metadata, then separately associate that with RTF files that are not clearly or directly linked to the metadata, then rearrange the data to the right oprder, and that’s not a process I would relish doing again. I’d much rather just parse the file like any other plaintext file, possibly accounting for whether the files are associated with a folder or not.

So I’d much prefer for the plugin to be optional both in that you don’t have to use it, but also that you don’t have to add folder content (however it happens to be applied). That would mean that it steps on no toes, and yet provides value to those of us who want to have some kind of content associated with their folders.

Yeah, sounds like you have a good grasp on the a use case for folders that’s not often mentioned in this forum.

To me, folders are conceptually/metaphorically useful, albeit a bit archaic intrinsically when paired in an environment like Obsidian. (But they do allow separation, sort of like fencing or boundaries in a way)

But at the very least they’re another attribute that files can have (like a tag), and more metadata the only allows for more refined/explicit actions with your content.

Also, the vast majority of users are going to be coming from a world of folders.

It’s the native way OS file systems work.

Even note taking apps (at least the ones I used) lead to using folders, so the more options users have to “import” those folders into Obsidian and “do things” with that attribute/context the easier it will be for people to transition into the networked note taking world or get their PKM system up & running.

3 Likes

I too consider it a feature. I’ve no problem with optional plugins adding extra files to folders.
But I can’t see why you can’t do that now without a plugin. You’d have to deal with a potential clash of file names, but that should be all. Being simple files, you can do anything with them outside Obsidian.

So I think there are a few separate issues we’re discussing in this thread and it might be useful to differentiate them, for the sake of the devs being able to make sense of the proposal:

  1. Whether folders are valid organizational tools in Obsidian. I think most of us mostly agree that they are, and since they’re already supported in Obsidian, I assume the devs agree too.
  2. The association of markdown content directly with a folder, in Obsidian. This is the actual plugin proposal. It’s not asking for any further integration of folders really, just the ability to treat folders sort of like “chapters” or being able to describe a category with its own content instead of a separate, unlinked markdown file.

I think that #1 is necessary but not sufficient for #2. #2 is of course not necessary or sufficient for #1, thus it’s optional and should be a plugin if it’s includedin Obsidian.

As for #1, I can also see a use case for folders as mutually exclusive categories. There are ontologies where there are categories that don’t overlap. An instance of cat cannot also be an instance of fish (barring fantasy), for example. I deal with plenty of mutually exclusive categories in my own data, but I do also deal with overlapping categories too.

  • Mutually Exclusive Categories = Folders
  • Overlapping Categories = Tags

In an ideal world, I’d want to assign descriptive markdown content to both Folders and Tags, assigning content to Tags seems like it relies on backend data structures that may not exist at this point, so I left it out of the original plugin idea description for clarity and specificity.


This is not what I’m suggesting.

I don’t propose for the plugin to create any files. It’s for the user to decide what files to create. If the user wants to make an index.md file for a folder, I’d assume they do that the normal way for Obsidian.

What I propose the plugin actually do in the UI is as follows:

  1. hide any index.md file from the file list or move it to the top of the sort order, so that it’s not cluttering up the file explorer
  2. clicking on a folder with an index file shows the contents of index.md the way clicking on somerandommarkdown.md will show it in the editor / view pane.
  3. (Optional, but high value) Allow users to link to the folder [[some folder]]
  4. (Optional, relies on #3 above) Allow the hover / mouseover plugin to show the content of links to [[some folder]]
4 Likes

I added the proposal to the op.

1 Like

Hello,

I am coming from Trilium Notes and because it is SQLite based it is possible that a note can also be a folder (containing child notes).

And although I do like the fact that obsidian uses simple files for the content, I do miss the possibility to have note content on a folder level. I use that a lot in Trilium.

Would it be an option to have for every folder you create in your vault a hidden md file is created in that folder (for example .foldername.md or maybe even a fixed name like .foldertext.md or so). And when you click on the folder the tree is not only opened but the content of that hidden md file is also presented.

My tree might looks like:

  • Project A
    - sprint 1
    - sprint 2
    - sprint 3

Now I have to create a sprint 1 file in my sprint 1 folder (which contains multiple files ect). That is not logically for my. Specially as you cannot force a note to be at the top of the child files.

For me this functionality would make my use of folder a lot easier and self-explaning because you define what you mean on a folder level.

I just thought this up and would lik e to know if anybody sees the value in this. Otherwise I might have to change my working habbits :-).

Let me know.

Kind regards,
JeRoen

5 Likes
  1. when a folder is created, a automatic virtual note is created as a hub
  2. when notes are placed into this folder, they automatically link to this folder/hub

Questions to consider
a. do existing links continue to exist when the note is moved to the folder
b. can a switch of some sort exist that allows you to allow/disallow the keeping of existing links to the notes being put into the folder.

1 Like

I am very much a fan of this proposal because it’s a 1-to-1 match for how basic HTML page structure works (for example, going to whatever.com/heres-a-thing/ will attempt to load whatever.com/heres-a-thing/index.html on most web servers), which would make this use also directly correspond with using tools like Github Pages that translate nested folders of Markdown files into nested folders of HTML files.

3 Likes

This is a very similar concept to page bundles in hugo. CC: @ Roadie

It’s a fantastic idea and would be an ‘official’ implementation of the work-flow that i’ve already started to create w/ Obsidian.

I have a Projects vault with each sub-dir being an actual project which leads to:

Projects/project-1/Overview.md (this has many back links to the many other notes in the project-1 dir
Projects/project-2/Overview.md … etc

The overview page is usually a quick glance of status (blocked, in progress, back burner…) and any remaining milestones and links to the document where the idea is described and the architecture fleshed out.

w/r/t the zettelkasten work flow, I absolutely expect that future notes for future projects will link to notes in current projects. For example:projects/project-long-running-thing/2020-03-01_production-issue-with-SomeProcessSpecificMachine.md might describe an issue and eventual solution. It is likely that future projects will later encounter the same or a similar issue.

The reason for using folders is simple:

  • it’s how a lot of people think about taxonomies / storing their info and data.
  • it’s also much easier for tools and scripts outside of obsidian.md to manage files this way.
  • file systems (and, sync tools!) can choke if there’s a ton of files in one directory. I don’t think that most people will have 100K+ files in one dir, but it’s a potential issue that goes away as soon as you split those 100K files across a few directories.

w/r/t scripts and tools that liive outside of obsiidian:

I can run a script on my Projects vault and every file that has the string TODO: $some_string_here will get turned into a todo list item where the tags/project/due-data and other meta data for the task are inferred from the folder paths. This becomes nearly impossible to do in a consistent and sane way unless either:

  • every file is forced to have some sort of standard header
  • an API / database now holds all of the medadata. This is why i stopped using qOwn Notes.

Either approach starts to infringe on the purity of “you own your notes” idea from the front page.

W/r/t: implementation details

I think a ‘hard-coded’ approach that always assumes 2 levels deep would work, but a better approach would be to set a regex expression to the full file path. Anything that matches this expression get treated as the ‘page’ for that folder.

I can imagine a plugin that has some setting that I would configure like this:

folder-pages:
- ${vault-root}/project-.*/index.md$
- ${vault-root}/idea-.*/index.md$

Which would only treat index.md files inside a directory that is named project-* or idea-* as ‘special’. A file called templates/index.md would not match the configured regex expressions and so it would not be treated specially.

On a side note, I would love to see that sort of option make it’s way to the template plugin so I can have a new note in a specific path automatically use a given template rather than having to pick which template i want via the command pallet.

2 Likes

In the file explorer, this is something I really miss from TiddlyWiki.

Very useful, but not limited to, referring to people. Say, in one note I say to "Enjoyed hanging out with the [[Skywalkers]] today. [[Luke]] was great fun, [[Anakin]] was just grumpy." I would love being able to nest these references under People > Skywalkers > Anakin | Luke. (with “Anakin”, as well as “Luke”, being a separate note.

The current way to go about it is to make “Skywalkers” a folder and with that not being able to reference it. I would love to be able to reference the nesting elements as well. That is especially handy when referring to families in journaling but allow for a variety of use cases, like being able to switch from referencing book titles or specific chapters.

Using folders as a system to categorise notes discourages creativity and hampers making connections. It seems to me like a more associative nature of structuring content rather than folders is more in the spirit of Obsidian.

This is slightly similar to the Nested Tags request but allows for an even greater variety of use cases. Implementation would not change existing workflows if users don’t choose to link to the notes they use as folders.

2 Likes

Maybe there is something that I am missing but there is no need to use folders in obsidian. If you want to use them, they are there. If you want to keep everything in place, that is fine too.

See folders in obisidan are more for keeping some related files together (if you choose so) not so much for organizing a hierarchy of concepts (which as you pointed out might even be a bad thing).

Folders are for something like, I keep my daily notes here. Stuff for my project there. That is it.

Perhaps, in your case, having a file with the same name as the directory would help. However, again, I am not sure how nice or effective it will be to have deep folder structures because you want to replicate a conceptual hirarchy with it.

2 Likes

Wanted to offer the Dendron app as an example for this. Dendron bakes the hierarchy into the filename. Not sure this is the best way forward but wanted to add it to the discussion.

https://www.dendron.so/notes/4bb85c39-d8ac-48ad-a765-3f2a071f7bc9.html

7 Likes

+1 for this feature!

I love this feature request. Unfortunately, I think that this topic has been highjacked by a debate of how to structure data. If you don’t like Folders/Hierarchical structures, that’s totally fine. You don’t have to use it, which is why it’s great that this idea is a plugin idea. It’s optional.

I think Obsidian is best when it is flexible and powerful enough to allow us to organize our data however we want, without forcing us to think in one particular way.

Folders have a major weakness (they force you into a strict one-to-one relationship hierarchy) but this weakness is also a feature. That hierarchy can be a quick and easy way to organize and find information.

Tags and links are great because they free us from the strict rigidity of folder hierarchy but it also adds the burden of responsibility on us to create and follow a good organization system.

The beauty of Obsidian is that it doesn’t force you into any one tool. We can use folders, and tags, and links. They all have their strengths and their weaknesses and if you don’t like one tool, then you don’t have to use it.

@arcandio 's proposal is great because it makes Folders more powerful and modern without weakening the power of tags or links.

In some ways I miss how Notion would treat “Pages” as both “Pages” and “Folders”. There was no difference. Every page could hold more pages. This meant I could easily create a hierarchy organization. But I wasn’t limited to this hierarchy because I could put a page link anywhere I want to any other page. Because “Pages” in Notion are also “Folders” every page acted as an MOC which was nice because I didn’t have to waste time creating MOC’s. They were just already created.

But right now in Obsidian, if I want to easily see all the notes in a folder I have to create an MOC manually within each folder. And as soon as I add or remove notes from that folder, now the MOC is inaccurate and needs to be manually updated. An index could fix these problems.

5 Likes

My thoughts on @arcandio 's proposal:

A Specific Proposal

  1. enabling the plugin makes any file named index.md associated with its containing folder.

Does the plugin create index.md files or have an option to auto-create index.md files. If so could this auto-create feature be toggled on/off, perhaps even on a per folder basis. (Perhaps every folder could have a right-click option called “Create folder index”.

  1. hide any index.md file from the file list or move it to the top of the sort order, so that it’s not cluttering up the file explorer

Yes!!

  1. clicking on a folder with an index file shows the contents of index.md the way clicking on somerandommarkdown.md will show it in the editor / view pane.

Yes!!

  1. (Optional, but high value) Allow users to link to the folder [[some folder]]

Yes!!!

  1. (Optional, relies on #3 above) Allow the hover / mouseover plugin to show the content of links to [[some folder]]

Yes!!

My Proposed addition to the proposal

  1. (Optional) Plugin auto-monitors changes of files within a folder and auto-updates the index.md file to match the contents of the folder.

  2. (Optional but probably necessary if #6 is on): Still allow user to edit index.md after it has been auto updated by the plugin. For example: add links to other notes even if they are in other folders. (May cause conflicts. Not sure.)

  3. Instead of index.md, how about someFolder_index.md and the plugin would simply look for any file that 1) ends in _index.md and 2) begins with someFolder where someFolder is the exact same name as the parent folder. (I think this would probably resolve the naming conflict issue).

I was thinking of something similar. What if the “folder note” was simply the folder name with a leading underscore _folderName.md. One major benefit of this is that it would sort the folder note alphabetically to the top.

3 Likes

For index.md, the main thing to keep in mind is that that naming is the de facto web standard and so would work transparently with anything that uses it (Jekyll/GitHub Pages, Next.js with MDX files, etc). A configurable setting to change the name used for said notes would probably be a good idea, but using index.md out of the box would be the most interoperable with other tools.

3 Likes

I am trying to make a workflow using Obsidian and I must say this problem with nesting files and folders has been the most annoying one for me so far, specially the fact that folder and files are sorted separately. I like the idea of Zettlekasten but it has a very limited function. It would be nice to use Obsidian for our daily needs and not just for a huge research to connect different idea .

3 Likes

I would love to have the option to make hierarchical notes. It would really help me keep the side bar straightened up, help me stay organized, etc. Your idea sounds good.

4 Likes