Org-roam is a knowledge management system, or personal wiki, built on top of EmacsOrg-mode. It implements a networked thought system, similar to Roam Research, allowing users to create interconnected notes in a non-hierarchical way. This facilitates effortless linking and discovery of connections between ideas, effectively creating a “second brain” for managing information.

Setting up Org-roam

Since I’m also publishing the notes using hugo, some properties are needed.

(setq org-roam-capture-templates
      '(("d" "default" plain
         "#+author: %n\n#+date: %t\n#+description: \n#+hugo_base_dir: ..\n#+hugo_section: posts\n#+hugo_categories: other\n#+property: header-args :exports both\n#+hugo_tags: \n%?"
         :if-new (file+head "%<%Y-%m-%d_%H-%M-%S>-${slug}.org" "#+title: ${title}\n")
         :unnarrowed t)
        ("p" "programming" plain
         "#+author: %n\n#+date: %t\n#+description: \n#+hugo_base_dir: ..\n#+hugo_section: posts\n#+hugo_categories: programming\n#+property: header-args :exports both\n#+hugo_tags: \n%?"
         :if-new (file+head "%<%Y-%m-%d_%H-%M-%S>-${slug}.org" "#+title: ${title}\n")
         :unnarrowed t)
        ("t" "tech" plain
         "#+author: %n\n#+date: %t\n#+description: \n#+hugo_base_dir: ..\n#+hugo_section: posts\n#+hugo_categories: tech\n#+property: header-args :exports both\n#+hugo_tags: \n%?"
         :if-new (file+head "%<%Y-%m-%d_%H-%M-%S>-${slug}.org" "#+title: ${title}\n")
         :unnarrowed t)))
Code Snippet 1: org-roam-capture-templates for quick note capturing.
ddefaultplain#+author: %n

These will separate each templates into its own category. Other category is still needed as default, for when I’m using a less used category.

(setq org-roam-capture-ref-templates
      '(("r" "ref" plain "#+author: %n\n#+date: %t\n#+description: \n#+hugo_base_dir: ..\n#+hugo_section: post\n#+hugo_categories: reference\n#+property: header-args :exports both\n#+hugo_tags: \n%?\n* Links\n- %l" :target (file+head "${slug}.org" "#+title: ${title}")
         :unnarrowed t)))
Code Snippet 2: org-roam-capture-ref-templates for capturing links.
rrefplain#+author: %n