Vidianos-Giannitsis / zetteldesk.el

Zetteldesk.el is an emacs library built on top of org-roam with the purpose of easier revision on various subjects and a better outliner tool for emacs
GNU General Public License v3.0
112 stars 7 forks source link

+TITLE: Zetteldesk.el a Revision and Outlining tool built on top of Org-Roam

[[https://melpa.org/#/zetteldesk][file:https://melpa.org/packages/zetteldesk-badge.svg]]

** Using Doom Emacs To install in a Doom configuration, you can also put the following declaration in your =packages.el=

+begin_src elisp

;; ~/.doom.d/packages.el (package! zetteldesk :recipe (:host github :repo "Vidianos-Giannitsis/zetteldesk.el"))

+end_src

Do note that if you want to install any of the extensions, they are separate packages, so this recipe won't install them. You need either separate ~package!~ calls or this snippet

+BEGIN_SRC elisp

(package! zetteldesk :recipe (:host github :repo "Vidianos-Giannitsis/zetteldesk.el" :files ("*.el")))

+END_SRC

** Doom Emacs Configuration If you are having problems with Doom Emacs, feel free to check out [[https://github.com/Vidianos-Giannitsis/zetteldesk.el/issues/8][this]] issue.

** Sample full config This package has a few extensions to it which enhance its features. These are by no means necessary and that's why the above example doesn't list them. This is the sample config that assumes you use all the add-ons. They are explained more in the next section of the config. This is the one I use personally.

+BEGIN_SRC elisp

(require 'zetteldesk)
(zetteldesk-mode 1)
(require 'zetteldesk-kb-complete)
(require 'zetteldesk-ref)
(require 'zetteldesk-info)
(require 'zetteldesk-remark)

+END_SRC

  1. My zettelkasten, having grown a lot more since the only other exam period I had used it in, was a bit harder to navigate so that I could do my revision in it.
  2. The ideas I was considering with the zetteldesk, might be able to help with that.

    So I started thinking how I could combine these two. Having ran out of ideas for things to do, I thought trying to automate my revision process would be a fun puzzle. I had also not implemented the original idea, not having an idea of how I was gonna do it, but I said lets move on and I will think of something. I defined a new way of adding files to the zetteldesk besides a single buffer or a single node. That was to add a node and all its backlinks. As someone who works with big index files to sort their topics, this was very helpful, as I could add the majority of notes on a subject with a single command. Being able to have an org-roam-node-find function that shows only the nodes I am interested in, combined with org-roam UI, graphing that, was already a powerful tool. But there was basically no automation, nor had I achieved my original idea yet. All I had was a makeshift tool to filter my switch-to-buffer and org-roam-node-find to specific things. That was useful, but I wasn't really satisfied, I had to keep going. While doing revision for the first lesson, I noted down everything I did in a seperate file and was then thinking how I could automate it.

    Slowly, things started coming together. I crafted a workflow which significantly eased revision for university and also managed to implement, at least as best I could, my original vision. Then I experimented a bit more. If this came out good, which it was looking to be so, I could use it for more general purpose studying. Therefore, I needed to handle org-files that were outside the org-roam directory, material handed in pdf form, web content and I even setup a way to handle Info buffers (as I read a lot of documentation through those and I figured it might be a good idea). I have used this for every exam of my current semester as of writing this (February 2022) and it has worked wonders to help me revise everything. Obviously, this is only good revision if the notes themselves are good, but having spent quite a bit of time during the semester trying to understand the topics and make good notes about them, I didn't fear about that part. And the system's automation works to help the process of reviewing only the notes I want in a lot of way.

    And as in the buffer that puts all of this together, I sort things with headings, I thought that maybe this could also be used as an outliner tool. I will look at how people do those and implement some stuff specifically for that, but for now, its not here. I think it might be usable for that purpose though anyways.

    This is where we currently are. Another big thing I want to do, is to play around a bit with [[https://github.com/nobiot/org-remark][org-remark]]. I believe that in such tool, the ability to highlight things and add margin notes to it might be really useful. In general I do not really use this right now, so it will take some time to do that, but I look forward to it. I also add small things to it in a rather regular basis, whenever I feel something is missing. The development of this, is very closely connected with my studying, so if I find something I can improve I will try to do so.