diff options
Diffstat (limited to '2022/talks/orgsuperlinks.md')
-rw-r--r-- | 2022/talks/orgsuperlinks.md | 196 |
1 files changed, 196 insertions, 0 deletions
diff --git a/2022/talks/orgsuperlinks.md b/2022/talks/orgsuperlinks.md new file mode 100644 index 00000000..ba94f71d --- /dev/null +++ b/2022/talks/orgsuperlinks.md @@ -0,0 +1,196 @@ +[[!sidebar content=""]] +[[!meta title="Linking headings with org-super-links (poor-man's Zettelkasten)"]] +[[!meta copyright="Copyright © 2022 Karl Voit"]] +[[!inline pages="internal(2022/info/orgsuperlinks-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-generate-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Linking headings (poor-man's Zettelkasten) and defining advanced task dependencies +Karl Voit (he/him, IRC: publicvoit, <mailto:EmacsConf22@Karl-Voit.at>) + +[[!inline pages="internal(2022/info/orgsuperlinks-before)" raw="yes"]] + +As written in [this blog +article](https://karl-voit.at/2020/06/14/Zettelkasten-concerns), Karl +thinks that a full-blown Zettelkasten workflow is not always a perfect +match for a given set of requirements. + +To him, the most important aspect of the Zettelkasten method are the +**bi-directional links between arbitrary headings**. If you want to use +such links without the additional burden and benefit of a +Zettelkasten implementation, you might want to learn how +bi-directional links are able to help you here. + +In this talk, you will see a demo how links are used in the author's +setup for linking headings and **defining advanced dependencies between +todo headings**. + +You can find [the **self-contained demo file** on +Gitlab.com](https://gitlab.com/publicvoit/orgmode-link-demo). It +consists of various packages and some Elisp glue to create these methods: + +- Bi-directional links between headings: + - [org-super-links](https://github.com/toshism/org-super-links) with `org-super-links-org-ql` and `org-super-links-org-rifle` + - `org-super-links-quick-insert-inline-link` + - `org-super-links-quick-insert-drawer-link` + - [org-linker](https://github.com/toshism/org-linker) + +- Advanced dependencies: + - [org-edna](https://www.nongnu.org/org-edna-el/) + - [org-linker-edna](https://github.com/toshism/org-linker-edna) + +- Search, completion and narrowing: + - [helm](https://emacs-helm.github.io/helm/) + - [helm-org](https://github.com/emacs-helm/helm-org) + - [org-ql](https://github.com/alphapapa/org-ql) with `helm-org-ql` + +- Adding CREATED properties for new headings: [org-expiry](https://git.sr.ht/~bzg/org-contrib/blob/master/lisp/org-expiry.el) (not necessary for any demo functionality) + +More on bi-directional links and Karl's Org mode projects: + +- [UOMF: Linking Headings With org-super-links (Poor-Man's Zettelkasten)](https://karl-voit.at/2020/07/22/org-super-links/) +- [UOMF: On How to Define Projects in Org Mode](https://karl-voit.at/2019/11/03/org-projects/) +- [A Draft Workflow for Advanced Project Management Using Org Mode and Org Edna](https://karl-voit.at/2020/08/14/project-mgt-draft/) +- [Zettelkasten/Org-roam/Org-brain Is Crap](https://karl-voit.at/2020/06/14/Zettelkasten-concerns/) + +[More Emacs-related articles by Karl](https://karl-voit.at/tags/emacs/) + +# Discussion + +## Notes + +- Please note that Karl has written additional notes and links on + <https://emacsconf.org/2022/talks/orgsuperlinks/> + the linked blog + article <https://karl-voit.at/2020/07/22/org-super-links/> +- Method vs. tool: + <https://karl-voit.at/2021/01/18/feature-vs-method/> +- nice talk + +## Questions and answers + +- Q: so the LINKS drawers holds so-called "backlinks"? + - A: yes. You can customize the drawer name. +- Q: does this configuration you use need packages outside elpa? + - A: yes. repository link: + <https://gitlab.com/publicvoit/orgmode-link-demo> +- Q:Can you filter out blocked taskes on stuff like your agenda or a + specific agenda view, When you want to know what you can do next? + - A: Blocked tasks are never shown on the agenda by default. + Whenever there is no scheduled timestamp attached to a heading, + it's not visible on my agenda. If you use the dependencies as + described in the demo, the timestamp is only marked if the + previous one is canceled. So blocked tasks are not shown in this + setup. +- Q:The functionality seems quite nice but the markup seems pretty + heavy in the property drawers. Do you ever have any issues having + so much meta-level information in the file? + - A: As long as it doesn't need to be typed manually there's no + real issue. The orgmode files tend to be large. I haven't felt + it's bloated. +- Q:Does this change how you use todo keywords "next, todo, + blocked?", avoiding some or starting to use others + - A: No. My keywords are NEXT, STARTED, WAITING, DONE, CANCELLED +- Q:Org Brain has stuff like parent links and directional links, + sibling links. If org roam else has nothing else intersting what + about like the previous stuff? + - A: My links are not "directed" most of the time. So I don't + have the requirment for specific link types or directions. In + short: I don't need semantic links so far. Following the KISS + principle. I get the information from the context of the link. +- Q: DO you find that the links are fragile, hard to maintain? + - A: not really. sometimes I rename links and the link name is not + updated, that require some fixes by hand +- Q: PhD Thesis link + - A: <https://karl-voit.at/tagstore/en/papers.shtml> The first + chapters of my thesis should be easy to read for the general + public as I summarize the history of PIM (Personal Information + Management) research + - + related github projects around tagstore + <https://github.com/novoid/> + - tagstore <https://karl-voit.at/tagstore/> = research + prototype software in Python to do research around tagging + interfaces for local files + - flexible to adapt + - Topic: improving the local file management beyond the usual + hierarchy of directories (tagging + TagTrees) + - DONE AFTER my PhD: + <https://karl-voit.at/managing-digital-photographs/> + filetags, date2name, move2archive, ... +- Q: why not org-id's UUIDs for IDs, and the preference for + human-readable ones (and not just use CUSTOM_ID for those)? + - Karl: I hate UUID because they're opaque, so I removed them. + - I don't understand. There is a part for human to read + description: [[UUID][A human readable description]] + - Karl: this would not add any benefit from my personal point + of view as longs as the human-readable ID is unique. So why + not get rid of the UUID and use the humand readable link + text? + - A human readble link is fragile, e.g. space, non acsii + characters. When unexpected things happen, it is hard to + detect the change. Using human-readable link text + release the stress, so the user could focus on the + content. + - Karl: You should take a look at my Elisp function that + generates the ID strings. No problem so far. + <https://github.com/novoid/dot-emacs/blob/master/config.org> + - I found you write a blog about it: + <https://karl-voit.at/2019/11/16/UOMF-Linking-Headings/> + . I will read about it. + - I found `(defun + my-generate-sanitized-alnum-dash-string(str)` + in the + - way to generate your ID requires replace + non-ASCII characters: ;; + - Replace German Umlauts with 7-bit ASCII. + - ;; Replace German Umlauts with 7-bit ASCII. + - (str (replace-regexp-in-string "[Ä]" "Ae" + str t)) + - (str (replace-regexp-in-string "[Ü]" "Ue" + str t)) + - This is a very tedious work to do. I don't know + if users come from + - other non-ASCII characters would have to write + their own replacement + - regular expression. +- Q. do you have/use anything for "what links here / to this + heading", in a more occur/grep-style buffer and auto.? + - A: not yet, I use org-occur in the buffer and get the result +- Q: (totally tangential): Do you navigate your files with the arrow + keys or with C-{pnbf}? I saw arrows on your key-cast. + - It's more complicated than that: + <https://karl-voit.at/2021/05/23/advantage2-modifications/> + - In short: I'm using the arrow keys but they are not where + you'd assume they are. ;-) +- Q: link to thesis please +- Q: any way to do links by heading hierarchy? +- Q: so the LINKS drawers holds so-called "backlinks"? + - A: yes. You can customize the drawer name. +- does this configuration you use need packages outside elpa? + - A: my setup Elisp could be improved to great extend. + - A: <https://emacsconf.org/2022/talks/orgsuperlinks/> + - A: <https://gitlab.com/publicvoit/orgmode-link-demo> + +### Other discussions from IRC + +- Wow, this looks super organized +- i have to admire embedding that much info into tasks (ie: blocked, next, etc), i never get that far. my headings are much more lightweight, i'd likely use a plain list if i could fold over the text below +- Is there a specialized package for showing backlinks (org-mode) in a buffer, say based on IDs, in a normal occur buffer or even a grep/rg style thing? +- i really like that both publicvoit's org-superlinks and hyperbole are both elisp and inside emacs, where org-roam is a hodgepodge of external tools (my impression) + - isn't sqlite the only external dependency for org-roam though? +- Speaker: Actually, to create the demo fully self-contained was most of the effort with this demo. By far. +- Fashion: + - *that* is a dapper looking fellow! + - Really loved the ending publicvoit + - haha the goodbye was epic + - I am way underdressed for this conference it appears + - oh! I backed up and see the shorts that publicvoit was wearing! + - A fashion leder if you will + - I was here for the fashion. Not dissapointed. + +[[!inline pages="internal(2022/info/orgsuperlinks-after)" raw="yes"]] + +[[!inline pages="internal(2022/info/orgsuperlinks-nav)" raw="yes"]] + +[[!taglink CategoryOrgMode]] [[!taglink CategoryZettelkasten]] |