Hola!
Yo soy de esos que he estado siempre a medio camino entre Notion y Obsidian para mis notas personales y mi sistema de gestión personal y cuando vi el video de LinuxChad sobre este sistema simplemente me encantó… un sistema mucho más sencillo y fácil de mantener a largo plazo, de esas ideas que por lo sencilla que son, son una genialidad. Quiero empezar a migrar mi sistema de organización poco a poco a este sistema.
Os comparto una regex que transforma una tarea típica del estándar todo.txt a un objeto por si os resulta de utilidad (está en javaScript pero se puede pasar a cualquier lenguaje):
const taskMapper = (textLine) => {
const regex = /^(x)?\s*\(([^)]+)\)\s+(\d{4}-\d{2}-\d{2})\s*(\d{4}-\d{2}-\d{2})?\s*(.*?)\s*(\@\w+)?\s*(\+.*)/;
const match = textLine.match(regex);
if (!match) {
return;
}
const [_, completado, prioridad, fechaCreacion, fechaResolucion, nombreTarea, contexto, proyecto] = match;
return {
completado: !!completado,
prioridad,
fechaCreacion,
fechaResolucion: fechaResolucion || null,
nombreTarea: nombreTarea.trim(),
contexto: contexto || null,
proyecto
};
}
De esta forma una linea del fichero de todo.txt que indica una tarea de la siguiente forma:
x (A) 2024-09-19 Tarea1 @documentacion +project1
Lo obtienes en el script como un un objeto automáticamente para tener sus campos y hacer lo que se quiera vía código
Aún no le he incluido a esta Regex la posibilidad de tener etiquetas u otros campos, pero os actualizaré si lo amplio.
Por mi parte, estoy desarrollando un script para que me sincronice las tareas del fichero “todo.txt” con las que existan en un directorio que he llamado “projects”, donde pueden existir carpetas para indicar áreas o ficheros “.md” para los detalles de los proyectos en sí que estoy llevando y como este fichero puede contener tareas de markdown, quiero que se sincronicen automáticamente y se marquen como completadas cuando lo haga en el fichero .txt