Contenido

Método Zettelkasten con Emacs y Zetteldeft (compatible con Zettlr)

Como comenté en este artículo de Colaboratorio.net, el método Zettelkasten puede ser muy útil para llevar un sistema de notas. Para esto llevo algún tiempo utilizando Zettlr como herramienta principal.

Últimamente me hice bastante amigo de Emacs y decidí utilizar una especie de extensión llamada Zetteldeft y que con alguna pequeña configuración puede ser perfectamente compatible con Zettlr u otras aplicaciones similares.

Zetteldeft es una buena manera de iniciar un sistema de notas de este tipo ya que maneja jerarquías planas entre las notas, pero estas están interrelacionadas mediante etiquetas y enlaces.

A diferencia de otros sistemas como org-roam, Zetteldeft no utiliza una base de datos externa, esto, más allá de sus ventajas e inconvenientes, es excelente para aquellos usuarios de Emacs que quieran un zettelkasten “liviano”.

Para empezar, doy por sentado de los conocimientos mínimos de Emacs por parte del lector, que en general suelen estar bastante por encima de los mios propios.

1. Instalar Deft

Lo primero es instalar Deft, ya que este será la puerta de entrada a nuestras notas.

(use-package deft
  :init
  (setq deft-directory "~/nextcloud/notes/zettelkasten")
  (setq deft-extensions '("md" "org"))
  (setq deft-use-filename-as-title t)
  (setq deft-use-filter-string-for-filename t)
  (setq deft-recursive t)
  :bind
  ("<f5>" . deft)
  :ensure t)
(setq-default truncate-lines 1)

Estas líneas permiten la instalación de deft y configuran su directorio por defecto, que será donde estén nuestras notas alojadas. Además establece la tecla F5 para ejecutarlo y la linea final para que corrija algún defecto estético.

2. Instalar Zetteldeft

Seguidamente instalaremos Zetteldeft. Es decir, esta extensión de Deft que nos ofrece una manera sencilla y rápida de crear las notas y los enlaces entre ellas.

(use-package zetteldeft
  :ensure t
  :after deft
  :config (zetteldeft-set-classic-keybindings))

Zetteldeft requiere de un directorio temporario y que por defecto se encuentra en .emacs/zetteldeft/tmp.

3. Configuración para manejar archivos Markdown

En mi caso decidí utilizar el sistema de notas que ya venía utilizando con Zettlr y que están en formato Markdown.

Para hacer que Zetteldeft sea compatible con Markdown y con el tipo de enlaces que maneja Zettlr se deben hacer los siguientes cambios:

  1. Manera de nombrar e identificar los archivos: Mis notas empiezan con un número que no es mas que la fecha y hora sin separadores entre las cifras, y es usada como identificador único (2021-02-21 11:20:52 –> 20210221112052).
  2. Modificar la expresión regular para que Zetteldeft identifique el número identificador: La expresión regular que indico es la que corresponde a la manera que tengo de identificar las notas. Esta expresión regular debe adaptarse a cada caso, pero de esta manera me funciona perfecto.
  3. Cambiar los identificadores de enlaces [ y ].
  4. Cambiar el caracter identificador del título de la nota (#).

Esta configuración puede realizarse asi:

F5
M-x customize

y en el cajón de búsqueda: Zetteldeft

/posts/002-zetteldeft/M-x-customize.png
Figura 1: Personalizando Zetteldeft

Finalmente cambiar los valores por lo que queramos. En mi caso:

/posts/002-zetteldeft/zetteldeft-md-config.png
Figura 2: Configuración de Zetteldeft

En mi caso los cambios se reflejan en mi archivo de configuración de esta manera:

(custom-set-variables
 '(zetteldeft-id-format "%Y%m%d%H%M%S")
 '(zetteldeft-id-regex "20[0-9]\\{4\\}\\([0-9]\\{2,\\}\\)\\{4\\}")
 '(zetteldeft-link-indicator "[[")
 '(zetteldeft-link-suffix "]]")
 '(zetteldeft-title-prefix "# "))

Resultado final

Aquí les dejo las teclas para comenzar a trabajar con las notas y unas capturas:

Teclas Función Nota
F5 deft Inicio
C-c d D zetteldeft-deft-new-search
C-c d R deft-refresh
C-c d s zetteldeft-search-at-point
C-c d c zetteldeft-search-current-id
C-c d f zetteldeft-follow-link Sigue un enlace
C-c d F zetteldeft-avy-file-search-ace-window
C-c d l zetteldeft-avy-link-search
C-c d t zetteldeft-avy-tag-search Sigue una etiqueta
C-c d T zetteldeft-tag-buffer
C-c d i zetteldeft-find-file-id-insert
C-c d I zetteldeft-find-file-full-title-insert Crea un enlace en la nota
C-c d o zetteldeft-find-file
C-c d n zetteldeft-new-file Crea una nota nueva
C-c d N zetteldeft-new-file-and-link
C-c d r zetteldeft-file-rename
C-c d x zetteldeft-count-words
/posts/002-zetteldeft/zetteldeft-1.png
Figura 3: Zetteldeft en acción

Espero que te haya resultado interesante.

¡Saludos!

Referencias

Github - Zetteldeft. Introducción

Irreal.org/blog - Zetteldeft

Imagen de StartupStockPhotos de Pixabay


All posts are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license.