vimwikigraph
walks all files in a
vimwiki directory and builds a
graph between the encountered files and their internal references. The
code supports vimwiki-style links [[link]]
, [[link|description]]
and markdown-style links [description](link)
. The graph is
converted to the DOT language
using dot
. The results can then be
visualised with graphviz, e.g. using
dot
, neato
, fdp
, etc.
The graph visualises your notes and their connections, possibly providing new insights.
./vimwikigraph $HOME/vimwiki | dot -Tpng > test.png && open test.png
-diary
: collapse all diary entries under a single node diary.wiki
-cluster
: cluster subdirectories as subgraphs
-l
: only nodes with at least l
edges are inserted. The inserted nodes are
inserted with all their edges. Thus, nodes with less than l
edges can appear
when they are connected to other nodes that do satisfy the requirement.
For -l 0
, all nodes are inserted.
--ignore REGEX
: ignores any encountered path matching REGEX
Note: any trailing argument are considered directories to be skipped.
To illustrate /example/
contains some .wiki
files and also a
diary, /example/diary/*.wiki
. Running vimwikigraph
produces the
following output. All diary
files are collapse by default into a
single node. Any connections to and from any diary files are simply
an arrow point in to, or out of, the diary.
./vimwikigraph example | dot -Tpng > example.png
The -diary
flag ensures all diary items are shown as nodes.
./vimwikigraph example -diary | dot -Tpng > example.png
The -cluster
flag adds all diary items to a subgraph.
./vimwikigraph example -diary -cluster | dot -Tpng > example.png
The --ignore
allows to filter files by the given regex, e.g. to ignore
any matches with alice
or bob
./vimwikigraph example -diary -cluster --ignore "alice|bob" | dot -Tpng > example.png
go get github.com/maxvdkolk/vimwikigraph
- 2021/05/31: add
--ignore
flag to ignore any path that matches the provided regex.