Is there any way to create a TOC in a new file that dynamically update?

I’m relatively new to Obsidian, the link and graph view really stands out. But I’ve encountered some silly problems and I’m not sure what to do.

For example my current structure is like
Topic A

  • Topic AA
  • Topic AB

Topic B

  • Topic BA
  • Topic BB


  • Topic AA
  • Topic AB


  • Contents

Initially, I skipped Topic so there won’t be too many layers, but the problem is Topic A won’t show in graph view. But I still want to see my second layers of topics like Topic AA in the Currently, I either manually copy the contents in Topic under Topic A section. Or use transclude blocks. But this way the format looks really awful.

I’ve tried to use dynamic toc plugin, but first it can only generate toc for current file. And if I link to this block, the format is still awful.

Is there an elegant way to solve this problem? I feel like there shouldn’t be so many layers of notes that I have to click through. Yet I have no idea how to solve this problem.

Hi and welcome!
Some quick basic info, sorry if this is a repetition: what shows up on the graph are files and (if you toggle them on) tags, with lines between them based on whether the file contains an internal link to [[AnotherFile]] or contains a tag. An embedded link ![[AnotherFile]] counts as a link to make a line on the graph also. If you have a link to [[AFileThatDoesNotExistYet]], you can toggle a setting on the graph to make “AFileThatDoesNotExistYet” appear as a node in the graph, along with edges from all the other files that link to it. So if in both and Topic there was a link [[Topic A]], even if “Topic” did not exist you could turn off the “Existing Files Only” setting in the graph view and see the connection between and Topic But the connection lines will only exist if you have in the connecting files a link!

There are a number of different plugins and strategies for automating these sorts of connections, depending on what exactly you want to have displayed on your pages or shown in your graph. One search term to use is “MOC” (map of content) instead of table of content.

Good luck!

Thanks for your reply!
I’ve tried some MOC plugins like folder note/zoottelkeeper/map of content, sadly none of them seems to fulfill my need.
The only way seems to work is embedded link, but the problem is the format isn’t that good.
For example, I need to manually create Topic A/
Ideal graph should be like

With embedded link in

What I really want to show in

So unless I use embedded link there will be a link between Topic and Topic AA, which means hierarchy isn’t right.

Is there a more elegant way or the way I take notes in Obsidian isn’t right?

So you want to see the list of subtopics for topic A, but not have links to them?
One way to do that would be through the plugin dataview.

In “Topic” and “Topic” have a field with a link to [[Topic A]]. E.g. parent:: [[Topic A]]. And then in “” you could put a dataview codeblock to
LIST WHERE parent = [[Topic A]] under your Topic A heading and LIST WHERE parent = [[Topic B]] under your Topic B heading.

Again, this is only one of many many possible ways to do this. Others on the forum will have different ideas.

There is no wrong way to take notes (except perhaps not to take them, if you end up wanting them later). There is no wrong way to organize notes, just ways that work better for you, and the only way to find those are to take a bunch of notes and try different organizational methods out. Happy exploring!

1 Like

I have only skimmed this, so forgive me if I get it wrong, I am on my way out the door. It looks like the Breadcrumbs plugin might be helpful to you.

1 Like

Thank you! I never thought this problem could be solved by database. Even though it’s a little cumbersome, but it did work!
With a database, guess I can replace a lot of stuff in notion.

1 Like

Thank you for your recommendation. This plugin can’t change graph view the way I want but did provide an alternative view. Will look into it. Thank you!

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.