Virtual File

Table of Contents

1. Archivo virtual   project someday_20230330

1.1. Cómo sería si hubiese un org-widen más allá de un archivo?

  • Tendría que haber un archivo que definiese links (ya sea jerárquicos o links/dynamic blocks) a queries de más alto nivel, como Area → Project
    • Definir un #+PARENT_FILES: <lista de padres>, usar org-roam para sacar backlinks
    • Usar org-transclusion para mostrar el contenido
    • La segunda parte seria crear links a archivos virtuales, que serían links a headlines con algo más (quizás seguir el mismo esquema de org-transclusion de poner un #+loquesea arriba)
  • Sacado de wikinizer, los archivos son virtuales, como org-narrow
  • distintos filtros asociados a distintos niveles de focus

1.2. Convertir los links file: → id:   project someday_20230330 someday_20230330

  • Añadir a translate_links.py una función para reemplazar todos los links (salvo los de 0.org, tratar aparte) por el primer id del archivo (si eso dejar un (file) al final para marcarlos) para que así se pueda hacer un Archivo virtual
  • ↓ Restringe a un heading principal por archivo siempre
  • [X] Habría que actualizar las plantillas de org-roam
  • ↑ Gano independencia del archivo, puedo mover nodos entre archivos sin problema
cd ~/org && echo -e "file,top\n" "$(rg "^\* " -c | grep -e ":[2-9]" -e ":1[0-9]" --color=none | sed "s/:/,/")" > multi.csv

1.2.1. Diseño

  1. En la primera pasada, guardar asociaciones file: → primer id: en un diccionario
  2. Con una variable opcional, sustituir todos los links file:… file:… por un sólo link
  3. En la segunda pasada, sustituir los links file:… por links al primer id

1.3. Meter todos los org en una carpeta   project someday_20230330 maybe_20230330

1.4. Noción de archivo para PKM

Roam Research y org-roam quizás se fijan demasiado en el concepto de archivo ⇔ index card

1.5. Necesitas first-class support for transclusion para poder hacer esto

Una transclusión tiene que ser muy sencilla para el usuario, muy ligera en rendimiento, y tienes que poder hacer excision de manera fácil (como en TiddlyWiki) para poder tener archivos virtuales de manera fácil
Al final se implementa como que cada componente que puede ser transcluido es un archivo
Para que sea muy ligera en rendimiento tendrias que

  1. cachear las transclusiones para que ya se sepan cuáles suelen estar en un archivo y
    (esto se puede hacer en el propio org-mode, de manera más o menos manual?)
  2. cuando cambia el archivo comprobar si hay alguna nueva transclusión (algoritmo de diff)

1.6. DONE Cuando hago org-roam-insert, que me inserte por id en vez de por file

  • Interesante también un advice de org-roam (no haría falta añadirlo a translate_links.py)
    • Los links roam\:asdfsdf se convertirían a links por id en vez de links por file
    • Cuando se inserta un links con org-roam-insert hay que cambiarlo a link por id
    • Habría que reimplementar el renombramiento de archivos que hace org-roam, que renombra el archivo y todos los links cuando cambia el nombre de un archivo

Author: Julian Lopez Carballal

Created: 2024-11-06 mié 12:54