π

UOMF: Linking Headings With org-super-links (Poor-Man's Zettelkasten)

Show Sidebar

This is an article from a series of blog postings. Please do read my "Using Org Mode Features" (UOMF) series page for explanations on articles of this series.

Reading this article you will learn why the Zettelkasten method is not for everybody. Furthermore, I show you a nice Org mode extension to link headings with back-links.

Why Zettelkasten Doesn't Work For Me

Recently, I wrote an article where I mentioned all the concerns I do have with using the now-hypes Zettelkasten method. Please read that article in case you want to learn what Zettelkasten method means and why I don't think that it can replace my Org mode based knowledge-base within notes.org as described here.

From the comments of the related reddit thread I learned, that the Zettelkasten method is something different from a standard knowledge-base with interlinked headings. It's far more than that. There are only a few use-cases where a Zettelkasten method is really required. The most obvious use-case is for people writing scientific papers and books, generating new ideas by combining and linking known concepts in a new way.

Currently, I don't have this use-case and therefore it is not a surprise that my concerns seem valid points against using Zettelkasten implementations.

Manually Linking Headings

In this article, I wrote about how to link headings with standard Org features and how I am using it for my own workflows.

While this is still a good method, you only get uni-directional links: from the current point to a different heading: A → B.

In some cases, you might want to have a back-link as well. A back-link is a link from the target heading of your link back to the point where you were at when creating the link: A → B and A ← B.

Of course, you can follow the created link and create a back-link by hand. But this can be automated.

Automatic Back-Links

I came across org-super-links which provides a neat method to create links and back-links. It offers nice features but the two features I use the most are sl-links and sl-quick-insert-inline-link.

Here is an example where the second and the third heading were linked to the first heading using those two methods:

 *** Linking concepts
 :PROPERTIES:
 :ID:       Linking-concepts-ignoreme
 :END:
 :BACKLINKS:
 [2020-07-22 Wed 20:12] <- [[id:insert-link-ignoreme][org-super-links: insert link]]
 [2020-07-22 Wed 20:11] <- [[id:sl-link-ignoreme][org-super-links]]
 :END:

 *** org-super-links: sl-links
 :PROPERTIES:
 :ID:       sl-link-ignoreme
 :END:
 :RELATED:
 [2020-07-22 Wed 20:11] -> [[id:Linking-concepts-ignoreme][Linking concepts]]
 :END:

 - =sl-link= via =C-c s s=

 *** org-super-links: insert link
 :PROPERTIES:
 :ID:       insert-link-ignoreme
 :END:

 - =sl-quick-insert-inline-link= via =C-c s i=: [[id:Linking-concepts-ignoreme][Linking concepts]]	  

In my setup I am using my-id-get-or-generate() to generate the :ID:-links in order to get human-readable IDs. For technical reasons, I had to modify the IDs in these examples.

You should also think of using (setq org-export-with-broken-links t) to avoid export problems with links to headings that are not part of the exported data.

In my opinion, this is a very good method for linking headings for many use-cases. At least for a broader set of use-cases compared to Zettelkasten links.

I'd love to see this method going main-stream and extending our way to work with Org.


Related articles that link to this one:

Comment via email or via Disqus comments below: