charlesschimmel / md-graph Goto Github PK
View Code? Open in Web Editor NEWPerform graph operations on a collection of interlinked Markdown files (or Obsidian, VimWiki, Zettlr, or Neuron)
License: Other
Perform graph operations on a collection of interlinked Markdown files (or Obsidian, VimWiki, Zettlr, or Neuron)
License: Other
Either stick it in /tmp
or figure out persistent connections to :memory:
.
It would be nice if...
Tags could be associated with a page/note/node. So the tag kombucha
was
either implicitly or explicitly associated with the note kombucha.md
or
#kombucha.md
or something like that. This is basically backwards-linking:
a link source -> sink
being created by the sink, instead of the source.
Pandoc supports tags in the YAML metadata at the top of a file. I prefer to use the YAML metadata/frontmatter for titling, tags, and datestamping so it would be nice if those tags were parsed out as well.
It would be nice to give tags their own hierarchy/directed acyclic graph/graph.
Although it could probably be cyclic, it's the same as building the file graph,
just with tags. Follow the connections and build up a list of tags to grab.
For example, all files tagged kombucha
are also implicitly tagged as
project
, fermentation
, and food
. This could be set up as kombucha -> food
or food -> kombucha
, both work as long as it's consistent (though it
will probably be easier to represent as the former)
This would probably be done in the config file added in #7
Add support for a config file.
$HOME/.config/md-graph
--config
to specify locationValues:
As-is this will not enable much functionality, but will enable greater functionality for other new features, like #5
Links from a note to itself should be ignored. I can't think of a reason why this information would be useful.
Parsing is pretty quick, but given a large enough library it starts to lag. Why not populate a database and query from that?
Sqlite for the database, persistent for the connection layer.
New command options:
--db-file
for database locationIt would be nice if...
Link text could be used as context for linking and possibly gain new insights by analyzing the common contexts of many links.
My first thought was that tags could be placed in the link text, and then queried for later, like this: [glucanobacter is in the acetic acid bacteria family #taxonomy](./some research note)
. I think this approach could be useful and the most straightforward, but it transgresses the principle that md-graph should not change how notes are taken.
Enrinching existing link contexts could include fuzzy matching the link text, but that seems coarse and not as useful. The next level would be analyzing the shape of relation that many links form, like a search engine.
It would be nice if...
When I'm querying a subgraph, I could ignore certain files or entire subgraphs and not traverse them. I might be exporting a subgraph of my kombucha research to share, but one of the files links to my top-secret kombucha recipe and its related notes.
Add a new run command that starts the app in daemon mode, watching the library for changes. Parse new/changed files, remove links for deleted files. Will enable greater functionality for #5
The link for Neuron links to Obsidian in the Readme. I would create a pull request but I have never heard about Neuron as a wiki/markdown-tool, so have no idea what the correct link is.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.