- I'm not an expert so I still need the "basic" way of taking structured notes, summarizing them until I gain a bigger picture of the things I'm curious about.
- I want to easily integrate spaced repetition and randomness to encourage improvement on my notes.
This project is the result of that with org-roam, Anki, and eventually more (preferably less) tools to stick around and gain ideas from.
* link:https://nixos.org/[Nix package manager] because link:https://orgmode.org/manual/Working-with-Source-Code.html[org-babel].
You can fully replicate the environment without Nix by looking at the dependencies at link:./shell.nix[`./shell.nix`] and install them with your package manager (or anything else, you do you) but I recommend to do so because I say so.
* link:https://direnv.net/i[direnv] (optional, by the way) because automatic shell environment.
footnote:[You can enable the direnv module from the Doom Emacs config.]
This wiki uses org-roam v2 as the main note-taking system.
As of 2021-05-04, it is yet to reach v2 but it is underway with its link:https://github.com/org-roam/org-roam/releases/tag/2.0.0a1[first alpha release].
The notes should've been adapted for v2 by now.
Though, you have to configure it in line with the major redesign.
This project has a link:./.dir-locals.el[local Emacs config] (see link:https://www.gnu.org/software/emacs/manual/html_node/emacs/Directory-Variables.html[related section]).
If you've set `enable-local-variables` to `:safe` or any value that makes Emacs to ignore them, you may want to configure related variables for it to work.
** My "traditional" notes is at link:./notebook/[`./notebook/`].
Since both of my evergreen and traditional notes are in the same folder, you can tell with the traditional notes not having a timestamp as the file name.
All notes here are named with the safe version of the filename (in kebab-case).
The filename is also just the normal path name except with the directory separator replaced with the dot (e.g., `cookbook/introduction-to-builder-pattern.org` will be `cookbook.introduction-to-builder-pattern.org`).
This allows to make a directory of flat files while representing the schema of your notes.
* The above structure makes it easier for retrieval.
If you want to search all of the fleeting notes, just search in `daily/`, etc.
** For searching tools, prefer desktop search tools such as link:https://www.lesbonscomptes.com/recoll/[Recoll] or link:https://sourceforge.net/projects/docfetcher/[DocFetcher].
** Quick search tools such as grep or link:https://github.com/BurntSushi/ripgrep[ripgrep] are also nice.
* Uses link:https://orgmode.org/guide/Tags.html[plain org-mode tags] for consistency.
It also happens to be the only supported tag format starting from link:https://org-roam.discourse.group/t/org-roam-major-redesign/1198[org-roam v2] so hoorah for me. :)
* A list of references are stored at link:./references.bib[`./references.bib`] for link:https://github.com/jkitchin/org-ref[org-ref-styled workflows].
It is managed with link:https://www.zotero.org/[Zotero] with the link:https://github.com/retorquere/zotero-better-bibtex[better-bibtex Zotero extension] but you can replace however you manage and generate the Bibtex file.
* A creation datetime and a modification datetime is a cruicial part of my notes.
It lets me know how up-to-date my notes are without relying on the filesystem metadata because I copy them carelessly, not to mention how various tools deal with them differently.
The modification datetime is handled with link:https://www.gnu.org/software/emacs/manual/html_node/emacs/Time-Stamps.html[timestamps] automatically.
In certain cases where the document has tangled files, it should be put in a separate folder with the filename of the org-mode document — e.g., `2021-04-06-15-04-11.org` should have an asset folder in `./assets/2021-04-06-15-04-11/`.
** I sometimes draw a visual aid just to strengthen my learning as well as an excuse to use my graphics tablet and I want to store them in a reasonable location without dumping it like in a landfill.
Unfortunately, this means having to scour the assets folder like a clueless babboon holding a hammer because all of it is named after a timestamp but I can deal with it.
** link:https://orgmode.org/worg/org-contrib/babel/intro.html[org-mode can also generate files including text and graphics].
I'm lazy and I fear conflicting asset filenames so I'll just put them in separate folders instead alongside opening a can of worms.
footnote:[This includes trying to name an asset that doesn't exist already to not overwrite the file that one note needed. It's also a lot more subtle when trying to build it altogether or if the notes get any bigger.]
** For my hand-drawn visual aids, I usually name with a prefix (e.g., `{art-file-prefix}-${WHAT_THE_GRAPHICS_IS_ABOUT}.webp`).
As a side effect, this mitigates against overwriting of generated assets from org-mode if I remember to not name it `{art-file-prefix}-*`.
** If you enable local variables (recommended to query it) and are OK with prompts every time you open up a note, then this should be no problem for you.
While the wiki is exclusively used with Emacs, there is an exported website with Next.js and link:https://github.com/rasendubi/uniorg/[uniorg] deployed using GitHub Actions (at link:./.github/workflows/[`./.github/workflows/`]).
The source code of the site is at link:./site/[`./site/`].
* Try out link:https://github.com/srid/neuron/[Neuron].
I've used it on and off and even tried to support both org-roam and Neuron because I like the static site generated and also because org-roam doesn't have a killer HTML exporter yet (in my opinion).
It is simple and nice but I can deviate from that with link:https://orgmode.org/manual/Publishing.html[org-publish] or any supported static site generators like link:https://gohugo.io/[Hugo].
Once link:https://github.com/srid/neuron/issues/557[org-mode is reimplemented in Neuron v2], it's a 100% addition to my workflow.