Introducción a Org-roam

1. Presentación

Org-roam es un sistema basado en texto plano para la gestión de conocimiento. Está inspirado en el método Zettelkasten y funciona sobre la base del poderoso editor GNU Emacs y el Modo Org. En esta breve e incompleta charla, revisaremos algunas de sus características principales y alguna configuración básica orientada a obtener una mayor productividad.

org-roam.jpeg

2. Herramientas

2.1. GNU Emacs

  • Editor de texto plano.
  • Parte del sistema operativo GNU.
  • Escrito en C y Lisp, extensible mediante el lenguaje Emacs Lisp.
  • Software libre bajo la licencia GPL v3.

2.1.1. Instalación

Debian
# apt install emacs
Void
# xbps-install emacs-gtk3

2.2. Modo Org

2.3. Org-roam

  • Org-roam es un sistema de notas no jerárquicas basado en las características de Roam Research.
  • Agrega nuevas características al modo Org, aumentando su sintáxis.
  • Algunas de sus características:
    • Privacidad y seguridad.
    • Texto plano.
    • Libre bajo licencia GPL v3.
    • Construído sobre Emacs.
  • Una buena introducción a Org-roam (en inglés) se puede encontrar en el canal System Crafters de David Wilson.

3. Método Zettelkasten

  • Atribuído al sociólogo alemán Niklas Luhmann.
  • Hace énfasis en conectar las ideas de manera no jerárquica.
  • Consiste en notas breves en tarjetas, interconectadas entre sí mediante un ID en la esquina de la misma nota.

3.1. Notas fugaces

  • Notas rápidas con información que en un futuro puede ser utilizada o desechada.
  • Normalmente hace uso de org-capture o usa la funcionalidad org-roam-dailies de Org-roam.

3.2. Notas permanentes

  • Se dividen en dos categorías.
    Notas literarias
    Anotaciones breves sobre una fuente en particular –libros, webs, papers– a las que quieres tener acceso posteriormente.
    Notas conceptuales
    Deben ser auto explicativas y detalladas.

4. Método tradicional vs. Zettelkasten

Método tradicional
Consiste en almacenar las notas en directorios jerárquicos, divididos por área temática, autor, etc.
Método Zettelkasten
Consiste en almacenar todas las notas en el mismo directorio y relacionarlas entre ellas utilizando –en el caso de Org-roam– hipervínculos, logrando algo así como una wiki de conocimiento personal.

5. Configuración básica

  • Las siguientes líneas de código pueden ser agregadas al archivo de configuración de Emacs.
  • La ruta donde se almacenan las notas tomadas con Org-roam es en este ejemplo ~/org/roam/, pero puede ser reemplazada por cualquier otra.
  • Se recomienda utilizar un directorio exclusivo para las notas de Org-roam, y no mezclarlas con los demás archivos .org que almacenamos.
(use-package org-roam
  :ensure t
  :init
  (setq org-roam-v2-ack t)
  :custom
  (org-roam-directory (file-truename "~/org/roam"))
  :bind (("C-c n l" . org-roam-buffer-toggle)
         ("C-c n f" . org-roam-node-find)
         ("C-c n i" . org-roam-node-insert))
  :config
  (org-roam-setup)

6. Org-Roam-UI

  • Org-Roam-UI es un frontend gráfico que nos permite visualizar nuestras notas y las relaciones entre ellas de una manera más comprensible.
  • Una configuración básica:
(use-package org-roam-ui
  :after org-roam
  :config
  (setq org-roam-ui-sync-theme t
        org-roam-ui-follow t
        org-roam-ui-update-on-save t
        org-roam-ui-open-on-start t))

7. Templates

(org-roam-capture-templates
 '(("a" "Author" plain
    (file "~/.emacs.d/templates/roam/author.org")
    :target (file+head "%<%Y%m%d%H%M%S>-${slug}.org"
                       "#+title: ${title}\n")
    :unnarrowed t)
   ("b" "Bibliography" plain
    (file "~/.emacs.d/templates/roam/biblio.org")
    :target (file+head "%<%Y%m%d%H%M%S>-${slug}.org"
                       "#+title: ${title}\n")
    :unnarrowed t)
   ("c" "Concept" plain
    (file "~/.emacs.d/templates/roam/concept.org")
    :target (file+head "%<%Y%m%d%H%M%S>-${slug}.org"
                       "#+title: ${title}\n")
    :unnarrowed t)
   ("d" "Default" plain
    "%?"
    :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n")
    :unnarrowed t)
   ("f" "Field" plain
    (file "~/.emacs.d/templates/roam/field.org")
    :target (file+head "%<%Y%m%d%H%M%S>-${slug}.org"
                       "#+title: ${title}\n")
    :unnarrowed t)
   ("q" "Quote" plain
    (file "~/.emacs.d/templates/roam/quote.org")
    :target (file+head "%<%Y%m%d%H%M%S>-${slug}.org"
                       "#+title: ${title}\n")
    :unnarrowed t)))

8. Alternativas

8.1. Libres

8.2. Privativas (no recomendadas)

  • Obsidian
  • Roam Research
  • Notion

Fecha: 14 de octubre de 2023

Autor: dlmayhem

Created: 2023-10-25 mié 18:55