New plugin: Dynamic Outline

New plugin: Dynamic Outline

Hi everybody! I’d like to share with you my new plugin – Dynamic Outline.
This plugin gives you a floating table of contents to navigate your notes.

My goal was to create a more dynamic and less intrusive approach to document outlines. I found the fixed right sidebar limiting in terms of space and convenience, especially for long notes, as I usually prefer to use a tiled layout, rather than the tab-only. Beyond functionality, I also aimed for a design that would integrate visually well within Obsidian.

Key Features:

  • Current Section Indicator – Displays your current position in the document.
  • Search & Navigation – Quickly find and jump to headings using the search bar.
  • Keyboard Control – Efficiently navigate the outline using keyboard shortcuts.
  • Toggle on Hover (optional) – Show the outline window on mouse hover.
  • Style Customization – Customize the visual appearance via Style Settings plugin.

Check it out on Github or install via Obsidian!

Thank you to everyone who has contributed to Dynamic Outline so far with feature requests and bug reports. And as more of you start using it, I’m excited to hear all of your thoughts and suggestions!

6 Likes

Oops deleted instead of edited! I like the plugin but i would like to be able to change the font size of the outline without having to use the Style Settings plugin. Thanks.

Nice! Thank you very much!

I applied the following styles to automatically hide it when I’m in edit mode or when the screen is too small. Maybe not the best solution but for me it works

div[data-mode='source'] #dynamic-outline {
  display: none;
}
.workspace-tab-container {
  container: main / inline-size;
}
@container (max-width: 1400px) {
  #dynamic-outline {
    display: none;
  }
}

Hi! Unfortunately, I’m not planning on integrating style customizations into the core plugin settings in the nearest updates :frowning: There are already so many options to customize that I’ve decided that it would be better to keep them all in one place.

However, you can still apply font size changes through custom CSS by overwriting the --dynamic-outline-font-size variable!

Hi! There is currently a similar FR in the github issues – [FR]Option to auto hide outline panel when it collapses with main text · Issue #14 · theopavlove/obsidian-dynamic-outline. Please feel free to join the discussion. I’m still deciding on which logic to implement for these cases, so thank you for the snippet idea.

Also, an auto-hide for the editing mode sounds like a nice touch. I will think about integrating such logic to the plugin settings.

2 Likes

Agreeable points to develop a plugin.
To improve public interest, you could consider to add a button to insert the outline as auto-updating TOC in the main body of a note. And to complete this feature, add a checkbox to add TOCs to PDF exports.

Hello! I’m unlikely to include this feature in the plugin, as similar plugins already exist. For example – johansatge/obsidian-automatic-table-of-contents.

1 Like

Having an outline within the panel is great when writing in a pop-out panel.

One nice thing was the dropbox paper style lines. This could help use more of the margin.
Kapture 2021-12-29 at 10.54.45

Just posting for your consideration. Little more info is here

For a while I tried to use a different plugin called obsidian floating toc and then floating toc. That plugin has performance issues for me.

1 Like

Hello! I appreciate you sharing your idea and the helpful context. I’m not currently focused on making significant alterations to the plugin’s logic, but I’m definitely keeping an eye out for nice TOC examples like the Dropbox example you’ve shared. Different types of TOC interactions are something I might consider adding in the future. However, the ideas of plugins such as floating-toc differs a bit from what I had in mind initially.

I like how the icon came embedded on the top of the note with my Commander icons.

Any chance the plugin would work counting commented out headings too?
All of these outline plugins including the core one show only headings as if we were in Reading Mode.

The following heading will not be shown:

%%
## Some heading and content I don't want to be seen in published material

Some paragraph here with content linking to another vault, for instance.
%%

I prefer this plugin over all the Table of Content Plugins

Looking forward to seeing your plugin evolve

1 Like

Hi! There is, actually, a similar feature request regarding including the headings from the lists into the outline – Headings don’t get recognized when in a list · Issue #13 · theopavlove/obsidian-dynamic-outline.

They are of a similar nature because the internal logic of how headings are parsed doesn’t process the note content line by line. Instead, it retrieves the note’s metadata, which is calculated efficiently by Obsidian itself.

I’m afraid neither your request nor the mentioned one can be addressed at the moment, as it would be necessary to implement a novel algorithm for heading parsing. I’m not planning to do this in the near future, but I’m definitely not taking it off the table.

1 Like

Thank you, I’m very glad you like it!