Giter VIP home page Giter VIP logo

obsidian-map-of-content's Introduction

Map Of Content for Obsidian

With this plugin, you will always know exactly where you are in your vault and how all of your notes are connected to each other. It helps you organize your notes in a decentralized manner, where every note is connected to a central note through different other notes.

It will find the shortest path from the central note to the currently open note and display it. It will also display the notes that are hierarchically below the current note (it's descendants) and their descendants.

It there are different paths to any one note that have the same length, they will all count. That way a note can have several parents and show up in different contexts, just like thoughts in your brain and ideas in real life tend to do do.

Because it generates this information from the links in your notes, the structure stays flexible and can adapt to any changes you make to your links. It will automatically update when you switch between notes, so you don't have to do anything to keep it up to date. You can also trigger a manual update by clicking on the little sync icon in the top bar.

Example Map of Content

This Map of Content will be displayed in the plugin pane, right of the editor. You can choose which note should be at the center of your vault in the settings tab.

Here's another example of what the view can look like if you have a lot of notes:

Second example Map of Content

You can download it by searching for "Map of Content" in the Obsidian community plugin store.

obsidian-map-of-content's People

Contributors

mikkovedru avatar robin-haupt-1 avatar robin-haupt-legalbird avatar rocketnova avatar trashhalo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

obsidian-map-of-content's Issues

new way to store and update paths when some notes change

instead of rebuilding the path information for all files:

  • keep a log of all files that changed either through hooks or file last changed information
  • delete all paths that contain changed notes
  • rebuild the path information, but only allow navigation through the notes that were contained in paths that were deleted because they contained changed notes

this might be performant enough to run live in the background

Compatibility with Linked Data Vocabularies

Linked data vocabularies plugin allows for narrower/related/and broader classifications based on Library of Congress Subject Headings and Classifications. These are added into the yaml like so:

image

it would be great if OMOC would read those YAML headings as well

Request for collaboration

Hey Robin :)

Interesting plugin you've made here, I only just came across it today!
I'm not sure if you've heard of Breadcrumbs before, it is a plugin I've been working on for some time now.
My understanding is that both plugins do pretty similar stuff! I don't have any issue with this (monopolies are counter to innovation ๐Ÿ˜‹), but perhaps collaborating our efforts would be more useful? Let me know what you think. Breadcrumbs is quite well established, perhaps I can show you around the codebase and we can work together.

Kind Regards
SkepticMystic

Config dropdown picker too limiting

Config screen has a drop down picker to select the central note. However for large vaults that will be prohibitive, also it doesn't scroll. Mine goes right off the bottom of the screen and I can only select a handful of notes (maybe 40 so under 4%) out of the 1000+ I currently have.

Also picking a note from that list and clicking rebuild map of content doesn't appear to do anything. I picked an existing note in the vault and clicked the button to save and regenerate the MOC, then opened the note, but nothing changed. I reordered the vault by created time and no other note was created.

Excellent plugin idea though, look forward to seeing it evolve.

Allow displaying the paths as a tree

You could have a tree from the CN that is just like the MOC tree only it shows only the connections to the current note.
This would be helpful if there are a lot of similar paths to the note, because then it would take up less space while presenting the information in a much more readable way.
Also you could expand nodes of that tree and get more context without leaving the note.

In terms of space taken up, you could hide this tree by default if there are few paths and only show it when a button is clicked. Or maybe scroll to the end of it on updating the view and let the user choose to scroll up to see it. (Maybe even show the traditional path information until the user scrolls up to reveal / load the tree to have a sort of fluid transition)

Related: #35

Feature Request: Allow Users to Exclude Files/Folders

I love Zoottelkeeper but I would love to exclude the auto-generated indexes it creates from this to make it more organic, or to exclude certain the contents of certain folders from the map. Does that make sense?

Modify MOC building and displaying based on folder structures

For example:

  • Never automatically expand the descendants of a note
  • Never include a note in any paths
  • Approach a note from many different connections even if those aren't the most direct paths
  • Mark a note as a Central Note

based on the folder/folders it is in

Modify MOC building and displaying with custom tags

For example:

  • Never automatically expand the descendants of a note
  • Never include a note in any paths
  • Approach a note from many different connections even if those aren't the most direct paths
  • Mark a note as a Central Note

Could of course also work on pre-existing tags, or even on tags that aren't native tags but have a custom format (like !tag) or are in the YAML

Monitor which notes are used most often

This way the path information can be adjusted for the most relevant (most alive) paths. They can be shown first or exclusively if there many competing ones of the same length

Modify MOC building and displaying using custom link notation

For example,

  • exclude link from path following
  • give link higher priority in link following (follow even if meandering a bit/lot)
  • include link only in MOCs centered around certain Central Notes (those might have to be given code names so as not to clutter up the whole vault with links to them but also be resilient against renames of the CN)

Exclude a folder from all Maps of Content

I'm not sure this is already contemplated in the other FRs, sorry if it is!

I have links to "all files created today" and "all files modified today" in all my daily notes. However, that means the MOCs get clogged with the daily notes and it makes it harder to see actual, substantive links.

If I could exclude an entire folder (in this case, the Daily Notes folder) from the query that would solve my problem and make the UX a lot better

Would you be open to consider a different name for your plugin?

I hope it is okay to share this here... I'm excited to try out your plugin. It looks really cool; no matter where you are, you can find your way back home. ๐Ÿ™Œ

Can I ask you to consider a different name for your plugin? I worry it will confuse people about what a Map of Content is. A Map of Content (MOC) is a note that mainly has links to other notes, thus "mapping" the contents of multiple notes in a digital library.

But your plugin is not an MOC. So I worry it is going to create a lot more confusion for everyone, especially in the forums for people to explain: "No, there's a Map of Content, which is already hard to describe, but that's different from this Plugin (also called the same name)."

Since your plugin helps you find your way back home, perhaps you could keep the "mapping" spirit, but give it a more descriptive name. Here are some alternatives I hope it's okay to share:

  • Home Navigator
  • Terrain Mapper
  • X Marks the Spot
  • It's Over There
  • Trails
  • Happy Trails
  • Directions Home
  • Back to home
  • No Place Like Home

Anyways, thanks for your time and hopefully your openness to this suggestion; I think the community enjoy your plugin!

Localize interface

Translate everything into different languages.

I only know english and german, so volunteers welcome!

Show statistics and progress indicators

To inform, inspire and motivate the user

i.e.:

  • How many notes are connected to a CN vs. aren't
  • How many notes have many connections and how many have fewer
  • Try to find clusters in the notes where they naturally all cluster around a certain few or a single note (to help with identifiying possible new CNs)
  • How the ratio of well- vs. badly or not at all linked notes has evolved over time

Dark/light mode problem

The recoloring of the arrows only works after updating the plugin pane (for example by going to another note), but not directly after switching themes. (Version 0.1.9)

make db rebuilding asynchronous

maybe slow it down somehow too so it doesn't freeze the program anyway. Especially important for live rebuilding and if the algorithms get more complex and thus take longer to finish in the future

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.