CLOSED: [2020-07-22 Wed 20:38] SCHEDULED: <2020-07-22 Wed> :PROPERTIES: :CREATED: [2020-07-11 Sat 15:50] :ID: 2020-07-11-org-super-links :END: :LOGBOOK: - State "DONE" from "DONE" [2024-01-12 Fri 17:00] - State "DONE" from "DONE" [2022-12-04 Sun 20:45] - State "DONE" from "DONE" [2021-10-04 Mon 09:05] - State "DONE" from "DONE" [2021-09-11 Sat 10:51] - State "DONE" from "STARTED" [2020-07-22 Wed 20:38] :END: # Why? id:2020-07-11-Blog-about-org-super-links-as-a-Zettelkasten-sub-feature-replacement # - [X] wait for fix on https://github.com/alphapapa/org-ql/issues/129 before writing this article This is an article from a series of blog postings. Please do read [[id:2019-09-25-using-orgmode][my "Using Org Mode Features" (UOMF) series page]] for explanations on articles of this series. - Updates - 2021-09-11: Link to [[https://github.com/ymherklotz/emacs-zettelkasten][org-zettelkasten]] - 2021-10-04: Link to [[https://dindi.garjola.net/zettelkustom.html][My Zettelkustom]] - 2022-12-04: EmacsConf22 talk video - 2024-01-12: Please note that meanwhile, the =org-super-links= prefix changed from =sl-= to =org-super-links-=. So I changed them here as well. 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. This article was also part of the basis of [[https://emacsconf.org/2022/talks/orgsuperlinks/][my EmacsConf 22 9 minutes demo]] which can be also be found on various locations: - [[https://tube.graz.social/w/ktsimCvaYseDanQWBChn5J][tube.graz.social (PeerTube)]] - [[https://toobnix.org/w/ff1YxBEgR9LxJ51trJwyYk][toobnix.org (PeerTube)]] - [[https://www.youtube.com/watch?v=hRmswFHNbnk][YouTube]] *** Why Zettelkasten Doesn't Work For Me Recently, I wrote [[id:2020-06-14-Zettelkasten-concerns][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 [[id:2020-03-30-current-org-files][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 [[id:2019-11-16-UOMF-Linking-Headings][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. This turns an uni-directional link in a [[https://maggieappleton.com/bidirectionals][bi-directional link]]. 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 [[https://github.com/toshism/org-super-links][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 =org-super-links-links= and =org-super-links-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:org-super-links-link-ignoreme][org-super-links]] : :END: : : *** org-super-links: org-super-links-link : :PROPERTIES: : :ID: org-super-links-link-ignoreme : :END: : :RELATED: : [2020-07-22 Wed 20:11] -> [[id:Linking-concepts-ignoreme][Linking concepts]] : :END: : : - =org-super-links-link= via =C-c s s= : : *** org-super-links: insert link : :PROPERTIES: : :ID: insert-link-ignoreme : :END: : : - =org-super-links-quick-insert-inline-link= via =C-c s i=: [[id:Linking-concepts-ignoreme][Linking concepts]] In [[https://github.com/novoid/dot-emacs/blob/master/config.org][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. [[https://copingmechanism.com/2021/are-automatic-backlinks-useful/][Don't over do it]]. I'd love to see this method going main-stream and [[https://github.com/toshism/org-super-links/issues/21][extending our way to work with Org]]. *** Other Alternatives :PROPERTIES: :END: Here, I try to collect some (not all!) low-profile alternatives to the larger Zettelkasten implementations. - [[https://github.com/ymherklotz/emacs-zettelkasten][org-zettelkasten]]: simple Zettelkasten implementation without dependencies: creating and linking notes + find parent note - 2021-10-04: here's a similar approach by [[https://dindi.garjola.net/][Garjola Dindi]] from the article [[https://dindi.garjola.net/zettelkustom.html][My Zettelkustom]]